sql >> Databasteknik >  >> RDS >> Sqlserver

Varför tar en UPPDATERING mycket längre tid än en SELECT?

  • transaktionsloggfilen skriver
  • indexuppdateringar
  • uppslagningar av främmande nyckel
  • utländska nyckelkaskader
  • indexerade vyer
  • beräknade kolumner
  • kontrollera begränsningar
  • lås
  • spärrar
  • låseskalering
  • ögonblicksbildsisolering
  • DB-spegling
  • filtillväxt
  • andra processer för att läsa/skriva
  • siddelningar/olämpligt klustrade index
  • framåtpekare/radöverskridande händelser
  • dåliga index
  • statistik föråldrad
  • dålig disklayout (t.ex. en stor RAID för allt)
  • Kontrollera begränsningar med UDF:er som har tabellåtkomst
  • ...

Även om den vanliga misstänkte är en trigger ...

Dessutom har ditt tillstånd extra ingen betydelse:Hur vet SQL Server att ignorera det? En uppdatering genereras fortfarande med det mesta av bagaget... även avtryckaren kommer fortfarande att aktiveras. Lås måste hållas medan rader söks efter de andra villkoren till exempel

Redigerad sep 2011 och feb 2012 med fler alternativ



  1. Hur hittar man en text i SQL Server-procedurer/triggers?

  2. Kan inte ansluta till den lokala MySQL-servern via socket '/tmp/mysql.sock

  3. dubblett av tom rad in i mysql vid filuppladdning

  4. UNION ALL vs OR-villkor i SQL-serverfrågan