Stiamo vedendo i tipi di attesa PAGELATCH_EX e PAGELATCH_SH molto alti insieme alle attese WRITELOG elevate. Ho diagnosticato la query che ha causato l'attesa di PAGELATCH e posso eliminarli riducendo la frequenza di inserimento in una chiave primaria cluster occupata definita con un valore IDENTITY. Comprendo che questo fenomeno è noto come contesa di latch di inserimento nell'ultima pagina.
Tuttavia, la mia domanda è quando viene inserito un nuovo record, SQL Server accetta un PAGELATCH_EX esclusivo in una pagina buffer, inserisce il record nella pagina buffer, scrive il record nel registro delle transazioni e quindi rilascia il PAGELATCH_EX esclusivo come https dettagliato : // www.microsoft.com/en-ie/download/details.aspx?id=26665 Pagina 24. Oppure scrive il record nel registro delle transazioni prima di prendere PAGELATCH_EX come dettagliato "Risoluzioni della controversia PAGELATCH su carichi altamente concorrenti" INSERT - Informazioni di base Guida di SQLCAT a: Motore relazionale
Se il record viene scritto per accedere al di fuori del meccanismo di blocco, allora posso escludere scritture lente su disco come causa di attese PAGELATCH elevate. Ma se il fermo viene mantenuto fino a quando il record non è indurito a registrare, probabilmente dovrei prendere in considerazione WRITELOG.
Inoltre, la presenza di più indici non cluster causerebbe la conservazione del latch PAGELATCH_ * più a lungo, ovvero se una tabella ha un cluster e più indici non cluster vengono aggiunti e rilasciati contemporaneamente a ciascuna delle pagine del buffer dell'indice?
Aggiornamento 1 Dopo aver letto la diapositiva due confio-sql-server-writelog-wait e l'architettura WAL generale. Ora sono consapevole che il passaggio "Registra una voce di registro che è stata modificata la riga" dettagliato in entrambi i white paper si riferisce a SQL Server che registra una modifica nella cache del registro delle transazioni, non sul disco. Una volta completata la transazione o riempito il buffer, tutti i record vengono immediatamente scaricati su disco.