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

Вмъкнете съхранената процедура за актуализиране на SQL Server

Предположението ви е правилно, това е оптималният начин да го направите и се нарича upsert/merge.

Значение на UPSERT - от sqlservercentral.com:

За всяка актуализация в споменатия по-горе случай премахваме едно допълнително четене от таблицата, ако използваме UPSERT вместо EXISTS. За съжаление за вмъкване, методите UPSERT и IF EXISTS използват един и същ брой четения на таблицата. Следователно проверката за съществуване трябва само да се направи, когато има всякаква основателна причина да оправдае допълнителния I/O. Оптимизираният начин да направите нещата е да се уверите, че имате възможно най-малко четения в DB.

Най-добрата стратегия е да опитате актуализацията. Ако няма редове, засегнати от актуализацията, тогава вмъкнете. В повечето обстоятелства редът вече ще съществува и ще се изисква само един I/O.

Редактиране :Моля, разгледайте този отговор и свързаната публикация в блога, за да научите за проблемите с този модел и как да го накарате да работи безопасно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изграждане на модел за машинно обучение със SQL Server, ML.NET и C#

  2. Как да получите статистическа информация за SQL Server с помощта на системни статистически функции

  3. Най-бързият метод за вмъкване, актуализиране, избор на SQL Server

  4. INFORMATION_SCHEMA срещу sysobjects

  5. Как COUNT() работи в SQL Server