sql >> Databasteknik >  >> RDS >> Sqlserver

Ta bort sats i SQL är mycket långsam

Saker som kan göra att en radering går långsamt:

  • tar bort många poster
  • många index
  • saknade index på främmande nycklar i underordnade tabeller. (tack till @CesarAlvaradoDiaz för att du nämner detta i kommentarerna)
  • dödläge och blockering
  • utlösare
  • kaskadradering (de tio överordnade poster som du tar bort kan innebära att miljontals underordnade poster raderas)
  • Transaktionslogg behöver växa
  • Många främmande nycklar att kontrollera

Så dina val är att ta reda på vad som blockerar och fixa det eller köra borttagningarna på lediga timmar när de inte kommer att störa den normala produktionsbelastningen. Du kan köra borttagningen i omgångar (användbart om du har utlösare, kaskadradering eller ett stort antal poster). Du kan släppa och återskapa indexen (bäst om du kan göra det på lediga timmar också).



  1. Problem med att använda MySQL-kontakten med Django 1.8

  2. Hur fyller man i den andra rullgardinsmenyn baserat på valet av den första rullgardinsmenyn med jQuery/AJAX och PHP/MySQL?

  3. MySql uppdaterar två tabeller samtidigt

  4. Hur man sparar en databas som en mall i Access 2016