Domanda

Dopo la migrazione dei dati da SQL Server 2000 a SQL Server 2008, quando sto facendo alcun una transazione nella tabella che saperne di più righe sul database, che di mi dà errore.

 Transaction (Process ID 59) was deadlocked on lock resources with
 another process and has been chosen as the deadlock victim. 
 Rerun the transaction.

Ci sono 3 trigger sul tavolo (Insert, Update, Delete). Come posso risolvere questo problema?

È stato utile?

Soluzione

Dopo l'aggiornamento a SQL Server 2008, avete fatto funzionare la sotto?

  1. DBCC UPDATEUSGAE
  2. UPDATE statistiche con FULLSCAN
  3. RICOSTRUZIONE tutti gli indici

Le statistiche BLOB è cambiata in modo significativo dal 2000 a SQL Server 2008 e la procedura descritta sopra sono molto importanti dopo l'aggiornamento. Ho visto molti ppl incorrere in problemi di prestazioni, ma non deadlock. Vorrei provare a fare tutto quanto sopra, se si dispone di non così lontano e cercare di riprodurre il problema in seguito.

Detto questo, ciò che è il risultato di SELECT @@ VERSION sulla scatola 2008? Si stanno aggiornando una riga o più righe?

Altri suggerimenti

I sospettato che questo potrebbe essere correlato agli ottimizzatori nelle diverse versioni di movimentazione blocco escalation diverso. Si può verificare la presenza di eventi Lock:Escalation?

Se si esegue Profiler e registrare tutti i grafici di stallo allora si può scoprire esattamente quali tavole le situazioni di stallo si verificano, comprese le pagine. Questo dovrebbe aiutare a restringere verso il basso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top