La mia comprensione dei deadlock è: due processi che tentano di contendersi per la stessa risorsa, in genere due processi che tentano di "scrivere" nella stessa riga di dati. Se tutto ciò che sta facendo un processo è la lettura dei dati - e l'altro processo sta aggiornando i dati, qual è la contesa di una risorsa? Eppure, nel nostro database, che è impostato sul livello di transazione predefinito "ReadCommitted", stiamo vedendo diverse eccezioni deadlock. ReadComitted definitin - I dati che sono stati modificati (ma non ancora commessi) non possono essere letti. Va bene, ma SQL Server dovrebbe lanciare un'eccezione deadlock se rileva questa "lettura sporca"? Qualcuno ha esperienza del mondo reale con questo scenario? Ho trovato un post sul blog (dallo sviluppatore StackOverflow, nientemeno :) affermando che questo potrebbe essere vero.Un livello di isolamento readcommitted può mai provocare un deadlock (server Sql)?
Grazie
Bene: si stanno descrivendo due transazioni di aggiornamento. In tal caso, ha senso imbattersi in una situazione di stallo. La mia domanda è - una delle transazioni è solo una lettura - nessun aggiornamento. L'altro sta scrivendo nello stesso record che viene letto. Come può questo risultato in una situazione di stallo? – user2736158
In cima alla mia testa, che non dovrebbe bloccarsi ma se modifichi la domanda con maggiori dettagli su ciò che le transazioni stanno cercando di fare, potremmo essere in grado di arrivare fino in fondo. – acfrancis