Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dlaczego UPDATE trwa znacznie dłużej niż SELECT?

  • zapisuje plik dziennika transakcji
  • aktualizacje indeksu
  • wyszukiwania kluczy zagranicznych
  • kaskady kluczy zagranicznych
  • widoki zindeksowane
  • kolumny obliczane
  • sprawdź ograniczenia
  • zamki
  • zatrzaski
  • zablokuj eskalację
  • izolacja migawki
  • Dublowanie bazy danych
  • wzrost pliku
  • inne procesy odczytu/zapisu
  • podziały stron / nieodpowiedni indeks klastrowy
  • wskaźnik do przodu/zdarzenia przepełnienia wiersza
  • słabe indeksy
  • statystyki nieaktualne
  • zły układ dysku (np. jeden duży RAID do wszystkiego)
  • Sprawdź ograniczenia za pomocą UDF, które mają dostęp do tabeli
  • ...

Chociaż zwykłym podejrzanym jest wyzwalacz ...

Ponadto warunek dodatkowy nie ma znaczenia:Skąd SQL Server wie, że ma go ignorować? Aktualizacja jest nadal generowana z większością bagażu... nawet spust będzie nadal działał. Blokady muszą być utrzymywane podczas wyszukiwania wierszy pod kątem innych warunków, na przykład

Edytowane we wrześniu 2011 i lutym 2012 z większą liczbą opcji



  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 2005 Pivot na nieznanej liczbie kolumn

  2. Rekurencyjny SQL do podziału CSV na wiersze tabeli

  3. Zakleszczenie z zakresu blokad na indeksie klucza podstawowego

  4. LIKE vs CONTAINS na SQL Server

  5. Wyszukaj tekst w procedurze składowanej w SQL Server