Sql server, bulk insert/update vs FUSION de l'insert ou du scénario de mise à jour

J'ai besoin de trouver la meilleure façon d'insérer ou de mettre à jour les données dans la base de données en utilisant sql server et asp.net. C'est un scénario classique si les données existent, il est mis à jour si pas, il est inséré. Je sais qu'il y a beaucoup de sujet ici, à ce sujet, mais personne n'a répondu à ce que j'ai besoin de savoir.

Donc mon problème est que il n'y a vraiment pas de problème lorsque vous mettez à jour/insérer 5k - 10k lignes, mais qu'est-ce avec 50k et plus.

Ma première idée était d'utiliser sql server 2008 de la FUSION de commande, mais j'ai quelques performances considération que si elle sera 50k+ lignes. Aussi, je ne sais pas si je peux marge de données de cette façon, basé non pas sur la principale clé d'id (int), mais sur d'autres clé unique dans la table. (pour être précis, un numéro de série du produit qui ne change pas dans le temps).

Ma deuxième idée était d'abord de rendre tous les produits en série, puis de comparer les nouvelles données périodiques avec qui et de le diviser en données à insérer et les données de mise à jour, puis il suffit de faire un bulk insert et une mise à jour en bloc.

Je ne sais pas qui sera mieux, avec la FUSION, je ne sais pas ce que la performance va être, et c'est uniquement pris en charge par sql server 2008, mais il semble assez simple, la seconde option n'a pas besoin de sql 2008, les lots doivent être rapide, mais la sélection de la première de toutes les séries et de la division basée sur eux pourrait avoir des pénalités.

Quel est votre avis, que choisir ?

  • Sont vous de décider de la mise à niveau vers 2008 ou êtes-vous à la distribution d'une application qui peut en avoir besoin pour s'exécuter sur plusieurs versions de SQL Server? Parce que si vous l'avez déjà, vous devriez être en mesure de tester la Fusion pour la performance.
  • Ouai, j'aurai besoin de mise à niveau pour utiliser la marge, ce n'est pas un problème, mais si la marge est de pire en performances, alors je ne sais pas, cela vaut le détour.
InformationsquelleAutor Programista | 2010-09-24