10
votes

Comment fonctionne l'insert en vrac interne?

Quelqu'un pourrait-il s'il vous plaît expliquer comment l'insert en vrac fonctionne en interne et pourquoi est-ce beaucoup plus rapide que les opérations d'insertion normales?

Cordialement, Shishir.


0 commentaires

3 Réponses :


7
votes

insertion en vrac fonctionne en cours avec le moteur de base de données de SQL Server et évite ainsi de transmettre des données via la couche réseau de l'API client - cela le rend plus rapide que le BCP et le DTS / SSI.

Aussi, avec insert en vrac, vous pouvez spécifier la commande par des données et si cela est identique à la PK de la table, le verrouillage se produit au niveau de la page. Les écritures sur les journaux de transaction se produisent au niveau de la page plutôt que sur un niveau de ligne.

Dans le cas d'insertion régulière, le verrouillage et le journal de transaction écrit sont au niveau d'une ligne. Qui rend l'insert en vrac plus rapidement qu'un énoncé d'insertion.


0 commentaires

1
votes

Au moins, il peut éviter les frais généraux de la création et de la commution d'une transaction pour chaque enregistrement à insérer. Il y a d'autres économies à recevoir: par exemple, expédition de plus gros morceaux de données sur le réseau plutôt que d'un enregistrement à la fois aidera.

Puis, peut-être plus intéressant, la mise en œuvre de la DB peut (je ne sais pas si un fournisseur spécifique en fait cela) commence à devenir intelligent - ils peuvent regarder l'ensemble des enregistrements à insérer et plutôt que de réorganiser des pages de données à Accueillir des enregistrements uniques peut faire des réorganisations en vrac des pages pour permettre de nouvelles insertions, nous pouvons également imaginer que les indices de mélange pouvaient être effectués plus efficacement si nous savons que nous insérons un ensemble d'enregistrements.


0 commentaires

0
votes

En interne, il convertit vers un enregistrement OLEDB, puis charge la table.

Je n'ai pas eu beaucoup de pensée, mais je suppose que cela est plus rapide lorsque vous exécutez sur la boîte SQL Server plutôt que sur le client. De plus, vous pouvez gérer les contraintes que vous ne pouvez pas avec une insertion normale

de Bol


0 commentaires