2010-03-30 4 views
10

La fusion peut effectuer des opérations d'insertion, de mise à jour ou de suppression sur une table cible en fonction des résultats d'une jointure avec une table source. Par exemple, vous pouvez synchroniser deux tables en insérant, en mettant à jour ou en supprimant des lignes d'une table en fonction des différences trouvées dans l'autre table.Quelle est la performance de la clause "Merge" dans sql server 2008?

Est-ce que quelqu'un est familier avec la performance à utiliser "Fusionner" par rapport à la logique traditionnelle pour vérifier l'existence et décider de la mise à jour ou insérer alors?

Merci!

Répondre

8

MERGE est généralement plus rapide car il y a moins d'opérations DML, et c'est aussi l'approche recommandée dans la documentation. Avec la méthode "traditionnelle", vous traitez les tables deux fois - une fois pour vérifier l'existence et une fois pour exécuter votre DML. Avec MERGE, tout est encapsulé avec une seule opération - d'où un ensemble de verrous émis, un ensemble de journalisation, etc.

Cependant, il est assez subjectif sur ce que font réellement vos requêtes. Vous devriez probablement jeter un oeil à Optimizing MERGE Statement Performance sur MSDN.

1

Technet a quelques informations dans Optimizing MERGE Statement Performance. Il dit essentiellement que la performance est meilleure que de faire des contrôles individuels, car un seul passage sur les données est nécessaire. Cependant, les index, etc. sont bien sûr toujours importants.

0

Nous avons utilisé cette instruction Merge récemment dans un grand projet Data Warehouse et nous avons trouvé une bonne performance ainsi qu'une facilité d'implémentation. Nous pensons que la déclaration Merge est très pratique pour le développement.

impatient de discuter

grâce prav

Questions connexes