sql >> Databáze >  >> RDS >> Sqlserver

Proč UPDATE trvá mnohem déle než SELECT?

  • zápisy do souboru protokolu transakcí
  • aktualizace indexu
  • vyhledávání cizích klíčů
  • kaskády cizího klíče
  • indexovaná zobrazení
  • vypočítané sloupce
  • zkontrolujte omezení
  • zámky
  • západky
  • uzamknout eskalaci
  • izolace snímku
  • Zrcadlení DB
  • růst souborů
  • jiné procesy čtení/zápis
  • rozdělení stránek / nevhodný seskupený index
  • události přetečení ukazatele vpřed/řádku
  • špatné indexy
  • statistiky jsou zastaralé
  • špatné rozložení disku (např. jeden velký RAID pro všechno)
  • Zkontrolujte omezení s UDF, které mají přístup k tabulce
  • ...

I když obvyklým podezřelým je spouštěč ...

Navíc vaše podmínka nemá žádný význam:Jak SQL Server ví, že ji má ignorovat? U většiny zavazadel se stále generuje aktualizace... dokonce i spoušť se stále spustí. Zámky musí být drženy, zatímco se řádky hledají například pro další podmínky

Upraveno v září 2011 a únoru 2012 s více možnostmi



  1. Proč tento dotaz SQL nevrací žádné výsledky porovnávající čísla s plovoucí desetinnou čárkou?

  2. Jak získat aktuální pořadové číslo Auto_Increment pro tabulku MySQL / MariaDB

  3. ZF2 dezinfikuje proměnné pro dotazy DB

  4. Jak rychle přejmenuji databázi MySQL (změním název schématu)?