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

Защо UPDATE отнема много повече време от SELECT?

  • записи в регистър на транзакциите
  • актуализации на индекса
  • търсене на чужд ключ
  • каскади с чужд ключ
  • индексирани изгледи
  • изчислени колони
  • проверете ограниченията
  • ключалки
  • резета
  • заключване на ескалация
  • изолиране на моментна снимка
  • БД дублиране
  • разрастване на файла
  • други процеси четене/запис
  • разделяне на страници / неподходящ групиран индекс
  • събития с указател напред/препълване на ред
  • лоши индекси
  • статистиката е остаряла
  • лошо оформление на диска (напр. един голям RAID за всичко)
  • Проверете ограниченията с UDF, които имат достъп до таблица
  • ...

Въпреки че обичайният заподозрян еспусък ...

Освен това вашето допълнително условие няма значение:Как SQL Server знае да го игнорира? Все още се генерира актуализация с по-голямата част от багажа... дори тригерът ще продължи да се задейства. Заключванията трябва да бъдат задържани, докато редовете се търсят за другите условия, например

Редактирано през септември 2011 г. и февруари 2012 г. с повече опции



  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 таблици

  2. Правилно използване на транзакциите в SQL Server

  3. mysql еквивалентни типове данни

  4. Последователност като стойност по подразбиране за колона

  5. ALTER TABLE DROP COLUMN не успя, защото един или повече обекти имат достъп до тази колона