Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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