sql >> Database >  >> RDS >> Sqlserver

Waarom duurt een UPDATE veel langer dan een SELECT?

  • transactielogbestand schrijft
  • indexupdates
  • opzoeken van buitenlandse sleutels
  • buitenlandse sleutelcascades
  • geïndexeerde weergaven
  • berekende kolommen
  • beperkingen controleren
  • sloten
  • vergrendelingen
  • escalatie vergrendelen
  • momentopname isolatie
  • DB-mirroring
  • bestandsgroei
  • andere processen lezen/schrijven
  • pagina-splitsingen / ongeschikte geclusterde index
  • voorwaartse aanwijzer/rij-overloopgebeurtenissen
  • slechte indexen
  • statistieken verouderd
  • slechte schijfindeling (bijv. één grote RAID voor alles)
  • Controleer beperkingen met UDF's die toegang tot tabellen hebben
  • ...

Hoewel, de gebruikelijke verdachte is een trigger ...

Ook heeft uw voorwaarde extra geen betekenis:hoe weet SQL Server deze te negeren? Er wordt nog steeds een update gegenereerd met de meeste bagage... zelfs de trigger gaat nog steeds af. Sloten moeten worden vastgehouden terwijl rijen worden doorzocht op de andere voorwaarden, bijvoorbeeld

Bewerkt september 2011 en februari 2012 met meer opties



  1. meerdere INSERTS en het houden van PDO voorbereide verklaringsbeveiliging

  2. Ora 12154 fout

  3. Haal de dichtstbijzijnde datum uit de MySQL-tabel

  4. Kan geen eerste verbindingen maken van poolproblemen in Grails