sql >> Base de Datos >  >> RDS >> Sqlserver

La declaración de eliminación en SQL es muy lenta

Cosas que pueden hacer que una eliminación sea lenta:

  • borrando muchos registros
  • muchos índices
  • índices faltantes en claves foráneas en tablas secundarias. (gracias a @CesarAlvaradoDiaz por mencionar esto en los comentarios)
  • bloqueos y bloqueos
  • desencadenantes
  • eliminación en cascada (esos diez registros principales que está eliminando podrían significar la eliminación de millones de registros secundarios)
  • Registro de transacciones que necesita crecer
  • Muchas claves foráneas para comprobar

Por lo tanto, sus opciones son averiguar qué está bloqueando y arreglarlo o ejecutar las eliminaciones fuera de horario cuando no interfieran con la carga de producción normal. Puede ejecutar la eliminación por lotes (útil si tiene activadores, eliminación en cascada o una gran cantidad de registros). Puede soltar y volver a crear los índices (mejor si también puede hacerlo fuera de horario).