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

Por que uma única instrução de exclusão SQL causará deadlock?


A resposta usual:depende! :-)

Principalmente em quanto tráfego você tem em seu sistema e qual nível de isolamento de transação você está usando.

O nível de isolamento controla como você está obtendo seus dados e quanto bloqueio está acontecendo. Se você nunca ouviu falar em níveis de isolamento de transação, provavelmente está usando o padrão - READ COMMITTED, escolha.

No entanto, se você usar algo como SERIALIZABLE por qualquer motivo, você pode experimentar não impasses - mas atrasos. A tabela pode ser bloqueada por um período de tempo até que sua única transação seja concluída. Se todas as operações funcionarem nesta ordem (primeiro delete, depois insira e selecione), não vejo como você deve encontrar algum impasse, na verdade.

Leia sobre os níveis de isolamento de transações SQL aqui em www.sql-server- performance.com .