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

¿Por qué una ACTUALIZACIÓN lleva mucho más tiempo que una SELECCIÓN?

  • archivo de registro de transacciones escribe
  • actualizaciones del índice
  • búsquedas de claves foráneas
  • cascadas de claves foráneas
  • vistas indexadas
  • columnas calculadas
  • verificar restricciones
  • bloqueos
  • pestillos
  • escalado de bloqueo
  • aislamiento de instantáneas
  • Duplicación de base de datos
  • crecimiento de archivos
  • otros procesos de lectura/escritura
  • divisiones de página/índice agrupado inadecuado
  • puntero hacia adelante/eventos de desbordamiento de fila
  • índices deficientes
  • estadísticas desactualizadas
  • diseño deficiente del disco (por ejemplo, un gran RAID para todo)
  • Comprobar restricciones con UDF que tienen acceso a tablas
  • ...

Aunque, el sospechoso habitual es un gatillo ...

Además, su condición adicional no tiene significado:¿cómo sabe SQL Server que debe ignorarla? Todavía se genera una actualización con la mayor parte del equipaje... incluso el gatillo seguirá disparando. Los bloqueos deben mantenerse mientras se buscan filas para las otras condiciones, por ejemplo

Editado en septiembre de 2011 y febrero de 2012 con más opciones