Sessioni bloccate in attesa con PAGELATCH_ * tipi di attesa?


9

Modificato: perché le sessioni che segnalano di essere bloccate ma in attesa con PAGELATCH_*e non LCK_M_i tipi di attesa correlati?

In precedenza avevo ipotizzato che il server SQL segnalasse solo sessioni di blocco nella colonna blocking_session_Id. Se le sessioni bloccate stavano aspettando un blocco logico e non altro come a PAGELATCH_*.

inserisci qui la descrizione dell'immagine


Sembra che molte sessioni simultanee stiano inserendo dati nella tabella. Puoi pubblicare la struttura della tabella insieme agli indici?
Kin Shah,

@Kin la tabella inizia a essere inserita dagli SPID 69, 82 e 84 ha un indice cluster definito con una proprietà IDENTITY (1,1) quindi potrebbe essere un caso di contesa di inserimento dell'ultima pagina ma a questo punto sono più interessato a perché le sessioni bloccate sono in attesa con un tipo di attesa correlato senza blocco. Inoltre, SPID 93 sta tentando di mettere un XLOCK su una tabella totalmente non correlata alla tabella selezionata da 64.
Pixelated

Risposte:


6

In precedenza avevo ipotizzato che SQL Server avrebbe segnalato solo una sessione di blocco nella colonna blocking_session_id, se le sessioni bloccate erano in attesa di un blocco logico e non altro come a PAGELATCH_*.

Stai utilizzando la sp_WhoIsActiveprocedura di Adam Machanic , non una funzione di SQL Server integrata. La procedura di Adam riporta tutte le cause "interessanti" di blocco, non solo il blocco. Le informazioni sottostanti provengono da varie fonti, tra cui sysprocesses , sys.dm_exec_requests e sys.dm_os_waiting_tasks .

Un'attività può attendere altre cose oltre a un lucchetto. Ad esempio, potrebbe essere in grado di acquisire un blocco esclusivo su una riga di una pagina, ma deve comunque attendere di acquisire un blocco di pagine esclusivo (poiché altre attività hanno bloccato la stessa pagina in una modalità incompatibile).

Nel tuo esempio, i PAGELATCH_EXlatch di pagina esclusivi si trovano su pagine di dati o di indice regolari, non su pagine PFS, GAM, SGAM, DCM o BCM, come indicato da (*) alla fine di wait_info .

Puoi trovare la documentazione (post di blog) sp_WhoIsActive qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.