Domanda

Modificato: perché le sessioni sono state segnalate con blocco ma in attesa con PAGELATCH_*, e non LCK_M_ I tipi di attesa correlati?

Prescato in precedenza che SQL Server segnalerebbe solo le sessioni di blocco nella colonna Blocking_Session_ID.Se le sessioni bloccate stavano aspettando un blocco logico e non nient'altro come un PAGELATCH_*.

 Inserire l'immagine Descrizione qui

È stato utile?

Soluzione

.

Prescato in precedenza che SQL Server segnalerebbe solo una sessione di blocco nella colonna Blocking_Session_ID, se le sessioni bloccate stavano aspettando un blocco logico e non nient'altro come un PAGELATCH_*.

Si utilizza la procedura sp_WhoIsActivetagCode di Adam Machanic, non una struttura di SQL Server integrata. La procedura di Adamo segnala tutte le cause "interessanti" del blocco, non solo il blocco della serratura. Le informazioni sottostanti proviene da varie fonti, inclusi Sysprocesses , sys.dm_exec_requests e sys.dm_os_waiting_tasks .

Un compito può attendere altre cose oltre a una serratura. Potrebbe essere in grado, ad esempio, per acquisire un blocco esclusivo su una riga su una pagina, ma quindi deve ancora aspettare di acquisire una pagina esclusiva Latch (perché altre attività hanno bloccato la stessa pagina in un Modalità incompatibile).

Nell'esempio, i fermi da pagina esclusivi PAGELATCH_EX sono su pagine di dati o indicizzi regolari, non pagine PFS, GAM, SGAM, DCM o BCM, come indicato da (*) alla fine del wait_info < / Em>.

Puoi trovare la documentazione (voci del blog) per sp_WhoIsActive qui .

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