Ho impostato un blocco di isolamento della transazione serializzabile per una transazione.Ma sto osservando alcuni risultati che non sono previsti.blocco di isolamento della transazione serializzabile
La mia domanda è
update tabl1 set col2 = 10 where col1 > 10 and col1 < 20
Qui col1 è righe key.Here primarie con col1 avere valore 10,11,12 .... 19,20 sono bloccati per l'aggiornamento/inserimento. In condizioni in cui ho dato condizioni come col1> 10 e col1 < 20 ma ancora le righe con col1 = 10 e col1 = 20 vengono bloccate.
Se do
update tabl1 set col2 = 10 where col1 => 10 and col1 <= 20
poi righe con valori aventi col2 da 9 a 21 ottiene locked.So perché col1 avendo 9 e 21 viene bloccato qui?
Per la query seguente viene chiusa la tabella completa.Here col3 è una colonna non primaria. Impossibile impostare il blocco se la colonna in cui condizione non è una chiave primaria?
update tabl1 set col2 = 10 where col3 > 10 and col3 < 20
Ma quale indice dovrebbero essere usati? Raggruppati o non raggruppati? – wincoding
@wincoding - Non fa alcuna differenza che SQL Server possa prendere i blocchi dell'intervallo di chiavi sia purché utilizzi quell'indice per risolvere il 'WHERE' –