Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Por que um UPDATE demora muito mais que um SELECT?

  • gravações de arquivos de log de transações
  • atualizações de índice
  • pesquisas de chave estrangeira
  • cascatas de chaves estrangeiras
  • visualizações indexadas
  • colunas calculadas
  • verificar restrições
  • cadeados
  • travas
  • encaminhamento de bloqueio
  • isolamento de instantâneo
  • Espelhamento de banco de dados
  • crescimento de arquivos
  • outros processos de leitura/escrita
  • divisões de página/índice clusterizado inadequado
  • eventos de estouro de ponteiro/linha de encaminhamento
  • índices ruins
  • estatísticas desatualizadas
  • layout de disco ruim (por exemplo, um grande RAID para tudo)
  • Verifique as restrições com UDFs que têm acesso à tabela
  • ...

Embora o suspeito usual seja um gatilho ...

Além disso, sua condição extra não tem significado:como o SQL Server sabe ignorá-la? Uma atualização ainda é gerada com a maior parte da bagagem... até o gatilho ainda será acionado. Os bloqueios devem ser mantidos enquanto as linhas são pesquisadas por outras condições, por exemplo

Editado em setembro de 2011 e fevereiro de 2012 com mais opções