Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Проверката за стойност на първичен ключ преди вмъкване по-бърза ли е от използването на try-catch?

В SQL 2008 можете просто да използвате MERGE - много по-просто от който и да е от вашите подходи.

Също така не съм с вас относно „НЕ искам да използвам транзакции от съображения за производителност“ - всяка DML команда, която изпълнявате, така или иначе е част от някаква транзакция, така че има транзакции, дори ако не ги отворите изрично. Ако имате проблеми с производителността, можете да публикувате повече подробности, за да получите повече помощ за производителността.

Редактиране:Ако имате нужда от наистина бързи вмъквания, не вмъквайте един ред наведнъж. Добавете набори от редове и използвайте MERGE - предимството, което ще получите от вмъкването на партиди от редове наведнъж, трябва далеч да надвишава всички незначителни подобрения, които ще получите от оптимизиране на скоростта на добавяне на един ред.

Както и да е, теоретичните разсъждения за всичко, свързано с бази данни, обикновено не са достатъчно добри. Наистина трябва да направите бенчмарк, за да определите кое е по-бързо. Това, което наричате „ненужно запитване за съществуваща линия“, може да е напълно незначително и не знаете дали е така, докато не го измерите при реалистични условия.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да зададете опцията maxrecursion за CTE вътре във функция с таблично стойност

  2. SQL Server SELECT в съществуваща таблица

  3. Търсете име на колона във всички бази данни

  4. CHARINDEX() срещу PATINDEX() в SQL Server – Каква е разликата?

  5. Изявление за сливане на SQL