Question

Je demande que je vous écris dans l'accès avec un back-end serveur SQL. L'un des plus utilisés pièces est où les utilisateurs sélectionnent une réponse à une question, une procédure stockée est ensuite tiré qui voit si une réponse a déjà été donnée, si elle a une mise à jour exécutée, sinon une instruction INSERT est exécutée.

Cela fonctionne très bien, mais maintenant, nous avons mis à niveau vers SQL Server 2008 Express, je me demandais si ce serait mieux / plus rapide / plus efficace de réécrire ce SP pour utiliser la nouvelle commande merge.

Est-ce que quelqu'un a une idée si cela est plus rapide que de faire un SELECT suivi soit par un INSERT ou UPDATE?

Était-ce utile?

La solution

Il ne vaut pas l'effort. Peut-être faisable, mais il ne vous donnera rien noticable.

MERGE est en ciblant particulièrement les entrepôts de données où trouver ce qu'il faut insérer / mise à jour est la partie la plus délicate. Elle permet toutes les opérations (insertion, mise à jour) à faire avec un ensemble de fusions, par rapport à l'autre pour chaque condition. Cela ne fait aucune différence réelle dans votre cas.

J'ai une base de données où je suis en train de charger 3-5 millions de lignes en 300 millions table de ligne - il fusionner improoves ma performance de 50% (un balayage de table au lieu de deux)

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top