Sdílet prostřednictvím


sys.dm_os_latch_stats (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Vrací informace o všech čekání na závazek uspořádaných podle tříd.

Poznámka:

Pro volání z Azure Synapse Analytics nebo Analytics Platform System (PDW) použijte název sys.dm_pdw_nodes_os_latch_stats. Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.

Název sloupce Datový typ Description
latch_class nvarchar(60) Název třídy latch.
waiting_requests_count bigint Počet čekání na západkách v této třídě. Tento čítač se inkrementuje na začátku čekání na blokování.
wait_time_ms bigint Celková doba čekání, v milisekundách, na západkách v této třídě.

Poznámka: Tento sloupec se aktualizuje každých pět minut během čekání na zápnutí a na jeho konci čekání.
max_wait_time_ms bigint Maximální doba, po kterou paměťový objekt čeká na tomto zapadce. Pokud je tato hodnota neobvykle vysoká, může to znamenat vnitřní zablokování.
pdw_node_id int platí pro: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifikátor uzlu, na který je tato distribuce zapnutá.

Povolení

Na SQL Serveru a službě SQL Managed Instance vyžaduje VIEW SERVER STATE oprávnění.

U cílů služby SQL Database Basic, S0 a S1 a pro databáze v elastických fondech se vyžaduje účet správce serveru , účet správce Microsoft Entra nebo členství v ##MS_ServerStateReader##roli serveru . U všech ostatních cílů VIEW DATABASE STATE služby SQL Database se vyžaduje buď oprávnění k databázi, nebo členství v ##MS_ServerStateReader## roli serveru.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.

Poznámky

sys.dm_os_latch_stats lze použít k identifikaci zdroje sporu o latch analýzou relativních čekací čísel a čekací doby pro různé třídy latchů. V některých situacích můžete vyřešit nebo snížit spory o západky. Mohou však existovat situace, které budou vyžadovat, abyste se obrátili na služby zákaznické podpory Microsoftu.

Obsah sys.dm_os_latch_stats můžete resetovat pomocí DBCC SQLPERF následujícího postupu:

DBCC SQLPERF ('sys.dm_os_latch_stats', CLEAR);  
GO  

Tím se obnoví všechny čítače na 0.

Poznámka:

Tyto statistiky se nezachovají, pokud je SQL Server restartován. Všechna data jsou kumulativní od posledního resetování statistiky nebo od spuštění SQL Serveru.

Latches

Latch je interní lehký synchronizační objekt podobný zámku, který používají různé komponenty SQL Serveru. Latch se primárně používá k synchronizaci databázových stránek během operací, jako je přístup do bufferu nebo souboru. Každá západka je spojena s jednou alokační jednotkou.

Latch wait nastává, když nelze požadavek na latch okamžitě schválit, protože latch drží jiné vlákno v konfliktním režimu. Na rozdíl od zámků se západka uvolní ihned po operaci, i při zápisu.

Latche jsou seskupovány do tříd podle komponent a využití. V libovolném okamžiku instance SQL Serveru může v instanci SQL Serveru existovat nula nebo více latchů určité třídy.

Poznámka:

sys.dm_os_latch_stats Nesleduje požadavky na zablokování, které byly uděleny okamžitě, nebo které selhaly bez čekání.

Následující tabulka obsahuje stručné popisy různých tříd latchů.

Třída latch Description
ALLOC_CREATE_RINGBUF Používá ji interně SQL Server k inicializaci synchronizace vytvoření alokačního prstencového bufferu.
ALLOC_CREATE_FREESPACE_CACHE Používá se k inicializaci synchronizace interních volných cache pro haldy.
ALLOC_CACHE_MANAGER Používá se k synchronizaci interních testů koherence.
ALLOC_FREESPACE_CACHE Používá se k synchronizaci přístupu ke cache stránek s dostupným místem pro haldy a binární velké objekty (BLOB). Spory u latchů této třídy mohou nastat, když se více spojení snaží současně vložit řádky do haldy nebo BLOB. Tento spor můžete snížit rozdělením objektu. Každá partition má svůj vlastní západkový mechanismus. Rozdělení rozloží vložky mezi více západek.
ALLOC_EXTENT_CACHE Používá se k synchronizaci přístupu ke cache rozsahů, která obsahuje stránky, jež nejsou alokované. Spor u latchů této třídy může nastat, když se více spojení snaží současně alokovat datové stránky ve stejné alokační jednotce. Tento spor lze snížit rozdělením objektu, jehož součástí je tato alokační jednotka.
ACCESS_METHODS_DATASET_PARENT Používá se k synchronizaci přístupu k poddaným datovým sadám k rodičovské datové sadě během paralelních operací.
ACCESS_METHODS_HOBT_FACTORY Používá se k synchronizaci přístupu k interní hashovací tabulce.
ACCESS_METHODS_HOBT Používá se k synchronizaci přístupu k paměťové reprezentaci HoBt.
ACCESS_METHODS_HOBT_COUNT Používá se k synchronizaci přístupu k HoBt stránce a řádkovým čítačům.
ACCESS_METHODS_HOBT_VIRTUAL_ROOT Používá se k synchronizaci přístupu k abstrakci kořenové stránky interního B-stromu.
ACCESS_METHODS_CACHE_ONLY_HOBT_ALLOC Používá se k synchronizaci přístupu k pracovnímu stolu.
ACCESS_METHODS_BULK_ALLOC Používá se k synchronizaci přístupu v rámci hromadných alokátorů.
ACCESS_METHODS_SCAN_RANGE_GENERATOR Používá se k synchronizaci přístupu k generátoru vzdálenosti během paralelních skenů.
ACCESS_METHODS_KEY_RANGE_GENERATOR Používá se k synchronizaci přístupu k operacím předčního čtení během paralelních skenování v rozsahu klíčů.
APPEND_ONLY_STORAGE_INSERT_POINT Používá se k synchronizaci insertů v rychlých úložištích pouze pro připojení.
APPEND_ONLY_STORAGE_FIRST_ALLOC Používá se k synchronizaci první alokace pro úložiště pouze pro připojení.
APPEND_ONLY_STORAGE_UNIT_MANAGER Používá se pro synchronizaci přístupu k interní datové struktuře v rychlém správci úložných jednotek pouze pro připojení.
APPEND_ONLY_STORAGE_MANAGER Používá se k synchronizaci operací zmenšování v rychlém správci úložných jednotek pouze pro připojení.
BACKUP_RESULT_SET Používá se k synchronizaci paralelních sad výsledků zálohování.
BACKUP_TAPE_POOL Používá se k synchronizaci zálohovacích páskových poolů.
BACKUP_LOG_REDO Používá se k synchronizaci operací obnovy zálohovacích logů.
BACKUP_INSTANCE_ID Používá se k synchronizaci generování ID instancí pro zálohovací čítače monitoru výkonu.
BACKUP_MANAGER Používá se k synchronizaci interního správce záloh.
BACKUP_MANAGER_DIFFERENTIAL Používá se k synchronizaci operací diferenciálního zálohování s DBCC.
BACKUP_OPERATION Používá se pro synchronizaci interní datové struktury v rámci zálohovací operace, jako je zálohování databází, logu nebo souboru.
BACKUP_FILE_HANDLE Používá se k synchronizaci operací otevírání souborů během obnovovací operace.
VYROVNÁVACÍ PAMĚŤ Používá se k synchronizaci krátkodobého přístupu ke stránkám databáze. Před čtením nebo úpravou jakékoli databázové stránky je vyžadován buffer latch. Spory o zablokování bufferu mohou znamenat několik problémů, včetně horkých stránek a pomalých I/O operací.

Tato třída latch pokrývá všechny možné způsoby využití page latchů. sys.dm_os_wait_stats rozdíl mezi čekáním na zapadání stránky způsobeným I/O operacemi a čtecími a zápisnými operacemi na stránce.
BUFFER_POOL_GROW Používá se pro synchronizaci interního správce bufferu během operací růstu bufferového poolu.
DATABASE_CHECKPOINT Používá se k serializaci kontrolních bodů v databázi.
CLR_PROCEDURE_HASHTABLE Pouze interní použití.
CLR_UDX_STORE Pouze interní použití.
CLR_DATAT_ACCESS Pouze interní použití.
CLR_XVAR_PROXY_LIST Pouze interní použití.
DBCC_CHECK_AGGREGATE Pouze interní použití.
DBCC_CHECK_RESULTSET Pouze interní použití.
DBCC_CHECK_TABLE Pouze interní použití.
DBCC_CHECK_TABLE_INIT Pouze interní použití.
DBCC_CHECK_TRACE_LIST Pouze interní použití.
DBCC_FILE_CHECK_OBJECT Pouze interní použití.
DBCC_PERF Používá se k synchronizaci interních čítačů výkonu.
DBCC_PFS_STATUS Pouze interní použití.
DBCC_OBJECT_METADATA Pouze interní použití.
DBCC_HASH_DLL Pouze interní použití.
EVENTING_CACHE Pouze interní použití.
FCB Používá se k synchronizaci přístupu k bloku řízení souborů.
FCB_REPLICA Pouze interní použití.
FGCB_ALLOC Použijte k synchronizaci přístupu k informacím o alokaci v rámci skupiny souborů.
FGCB_ADD_REMOVE Použijte pro synchronizaci přístupu ke skupinám souborů pro operace přidávání, odstraňování, zvětšování a zmenšování souborů.
FILEGROUP_MANAGER Pouze interní použití.
FILE_MANAGER Pouze interní použití.
FILESTREAM_FCB Pouze interní použití.
FILESTREAM_FILE_MANAGER Pouze interní použití.
FILESTREAM_GHOST_FILES Pouze interní použití.
FILESTREAM_DFS_ROOT Pouze interní použití.
LOG_MANAGER Pouze interní použití.
FULLTEXT_DOCUMENT_ID Pouze interní použití.
FULLTEXT_DOCUMENT_ID_TRANSACTION Pouze interní použití.
FULLTEXT_DOCUMENT_ID_NOTIFY Pouze interní použití.
FULLTEXT_LOGS Pouze interní použití.
FULLTEXT_CRAWL_LOG Pouze interní použití.
FULLTEXT_ADMIN Pouze interní použití.
FULLTEXT_AMDIN_COMMAND_CACHE Pouze interní použití.
FULLTEXT_LANGUAGE_TABLE Pouze interní použití.
FULLTEXT_CRAWL_DM_LIST Pouze interní použití.
FULLTEXT_CRAWL_CATALOG Pouze interní použití.
FULLTEXT_FILE_MANAGER Pouze interní použití.
DATABASE_MIRRORING_REDO Pouze interní použití.
DATABASE_MIRRORING_SERVER Pouze interní použití.
DATABASE_MIRRORING_CONNECTION Pouze interní použití.
DATABASE_MIRRORING_STREAM Pouze interní použití.
QUERY_OPTIMIZER_VD_MANAGER Pouze interní použití.
QUERY_OPTIMIZER_ID_MANAGER Pouze interní použití.
QUERY_OPTIMIZER_VIEW_REP Pouze interní použití.
RECOVERY_BAD_PAGE_TABLE Pouze interní použití.
RECOVERY_MANAGER Pouze interní použití.
SECURITY_OPERATION_RULE_TABLE Pouze interní použití.
SECURITY_OBJPERM_CACHE Pouze interní použití.
SECURITY_CRYPTO Pouze interní použití.
SECURITY_KEY_RING Pouze interní použití.
SECURITY_KEY_LIST Pouze interní použití.
SERVICE_BROKER_CONNECTION_RECEIVE Pouze interní použití.
SERVICE_BROKER_TRANSMISSION Pouze interní použití.
SERVICE_BROKER_TRANSMISSION_UPDATE Pouze interní použití.
SERVICE_BROKER_TRANSMISSION_STATE Pouze interní použití.
SERVICE_BROKER_TRANSMISSION_ERRORS Pouze interní použití.
SSBXmitWork Pouze interní použití.
SERVICE_BROKER_MESSAGE_TRANSMISSION Pouze interní použití.
SERVICE_BROKER_MAP_MANAGER Pouze interní použití.
SERVICE_BROKER_HOST_NAME Pouze interní použití.
SERVICE_BROKER_READ_CACHE Pouze interní použití.
SERVICE_BROKER_WAITFOR_MANAGER Používá se k synchronizaci mapy čekací front na úrovni instance. Jedna fronta existuje pro databázové ID, verzi databáze a n-tici ID fronty. Spory na zapadkách této třídy mohou nastat, když je mnoho spojení: ve stavu čekání na ČEKÁNÍ (PŘIJÍM); volá WAITFOR(RECEIVE); překročení časového limitu ČEKÁNÍ na čas; přijímání zprávy; potvrzení nebo vrácení zpět transakce, která obsahuje WAITFOR(RECEIVE); Spor můžete snížit snížením počtu vláken ve stavu ČEKÁNÍ na PŘIJETÍ(PŘIJMOUT).
SERVICE_BROKER_WAITFOR_TRANSACTION_DATA Pouze interní použití.
SERVICE_BROKER_TRANSMISSION_TRANSACTION_DATA Pouze interní použití.
SERVICE_BROKER_TRANSPORT Pouze interní použití.
SERVICE_BROKER_MIRROR_ROUTE Pouze interní použití.
TRACE_ID Pouze interní použití.
TRACE_AUDIT_ID Pouze interní použití.
TRACE Pouze interní použití.
TRACE_CONTROLLER Pouze interní použití.
TRACE_EVENT_QUEUE Pouze interní použití.
TRANSACTION_DISTRIBUTED_MARK Pouze interní použití.
TRANSACTION_OUTCOME Pouze interní použití.
NESTING_TRANSACTION_READONLY Pouze interní použití.
NESTING_TRANSACTION_FULL Pouze interní použití.
MSQL_TRANSACTION_MANAGER Pouze interní použití.
DATABASE_AUTONAME_MANAGER Pouze interní použití.
UTILITY_DYNAMIC_VECTOR Pouze interní použití.
UTILITY_SPARSE_BITMAP Pouze interní použití.
UTILITY_DATABASE_DROP Pouze interní použití.
UTILITY_DYNAMIC_MANAGER_VIEW Pouze interní použití.
UTILITY_DEBUG_FILESTREAM Pouze interní použití.
UTILITY_LOCK_INFORMATION Pouze interní použití.
VERSIONING_TRANSACTION Pouze interní použití.
VERSIONING_TRANSACTION_LIST Pouze interní použití.
VERSIONING_TRANSACTION_CHAIN Pouze interní použití.
VERSIONING_STATE Pouze interní použití.
VERSIONING_STATE_CHANGE Pouze interní použití.
KTM_VIRTUAL_CLOCK Pouze interní použití.

Poznámka:

Dokumentace používá termín B-tree obecně v odkazu na indexy. V indexech rowstore databázový stroj implementuje strom B+. To neplatí pro indexy columnstore ani indexy v tabulkách optimalizovaných pro paměť. Další informace najdete v SQL Serveru a architektuře indexu Azure SQL a průvodci návrhem.

Viz také

DBCC SQLPERF (Transact-SQL)
Zobrazení dynamické správy související s operačním systémem SQL Server (Transact-SQL)
SQL Server, Latches Object