Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
Információkat ad vissza az összes záró várakozásról, osztályonként rendezve.
Megjegyzés:
Ha ezt Azure Synapse Analytics vagy Analytics Platform System (PDW) néven nevezzük, használd a sys.dm_pdw_nodes_os_latch_stats nevet. Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.
| Oszlop név | Adattípus | Description |
|---|---|---|
| latch_class | nvarchar(60) | A záróosztály neve. |
| waiting_requests_count | bigint | A záraknál töltött idők száma ebben az órában. Ez a számláló a reteszes várakozás kezdetekor növekszik. |
| wait_time_ms | bigint | A teljes várakozási idő ezredmásodpercekben a záraknál ebben az órában. Jegyzet: Ez az oszlop ötpercenként frissül a zárás várakozás alatt és a zárolás végén. |
| max_wait_time_ms | bigint | Maximális idő, amit egy memóriaobjektum várt ezen a repen. Ha ez az érték szokatlanul magas, az belső holtpontra utalhat. |
| pdw_node_id | int |
A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW) Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található. |
Permissions
Az SQL Serveren és a felügyelt SQL-példányon VIEW SERVER STATE engedély szükséges.
Az SQL Database Alapszintű, S0és S1 szolgáltatás célkitűzésein, valamint rugalmas készletekbenlévő adatbázisok esetében a kiszolgálói rendszergazdai fiókra, a Microsoft Entra rendszergazdai fiókra vagy a ##MS_ServerStateReader##kiszolgálói szerepkör tagságára van szükség. Az SQL Database szolgáltatás minden más célkitűzéséhez vagy az adatbázis VIEW DATABASE STATE engedélyére, vagy a ##MS_ServerStateReader## kiszolgálói szerepkör tagságára van szükség.
Engedélyek az SQL Server 2022-hez és újabb verziókhoz
A KISZOLGÁLÓ TELJESÍTMÉNYÁLLAPOTÁNAK MEGTEKINTÉSE engedélyre van szükség a kiszolgálón.
Megjegyzések
sys.dm_os_latch_stats segítségével azonosítani a latch vita forrását a különböző latch osztályok relatív várakozási számainak és várakozási időinek vizsgálatával. Bizonyos helyzetekben előfordulhat, hogy megoldható vagy csökkenthető a zár elleni konfliktus. Előfordulhatnak azonban olyan helyzetek, amelyek miatt kapcsolatba kell lépnie a Microsoft ügyfélszolgálatával.
A sys.dm_os_latch_stats tartalmát a DBCC SQLPERF következőképpen állíthatod vissza:
DBCC SQLPERF ('sys.dm_os_latch_stats', CLEAR);
GO
Ez az összes számlálót 0-ra állítja vissza.
Megjegyzés:
Ezek a statisztikák nem maradnak meg, ha az SQL Server újraindul. Minden adat kumulatív a statisztikák legutóbbi visszaállítása vagy az SQL Server elindítása óta.
Latches
A latch egy belső, könnyű szinkronizációs objektum, amely hasonlít a zároláshoz, és amelyet különböző SQL Server komponensek használnak. A latch elsősorban az adatbázis oldalak szinkronizálására szolgál olyan műveletek során, mint a puffer vagy fájlhozzáférés. Minden zár egyetlen allokációs egységhez kapcsolódik.
A latch wait akkor történik, amikor a latch request nem engedélyezhető azonnal, mert a latch egy másik szál tartja ellentmondásos módban. A zárokkal ellentétben a zár azonnal a művelet után szabadul ki, még írásos műveletekben is.
A recepciókat az összetevők és használat alapján osztályokba sorolják. Egy adott osztályból nulla vagy több zárás is létezhet bármely időpontban egy SQL Server példányban.
Megjegyzés:
sys.dm_os_latch_stats Nem követi azokat a latch kéréseket, amelyeket azonnal engedélyeztek, vagy amelyek várakozás nélkül meghiúsultak.
Az alábbi táblázat rövid leírásokat tartalmaz a különböző relatch-osztályokról.
| Latch osztály | Description |
|---|---|
| ALLOC_CREATE_RINGBUF | Az SQL Server belsőleg használja az allokációs gyűrűpuffer létrehozásának szinkronizálásának inicializálására. |
| ALLOC_CREATE_FREESPACE_CACHE | A belső szabad tér gyorstárok szinkronizálására szolgál halomokhoz. |
| ALLOC_CACHE_MANAGER | Belső koherenciatesztek szinkronizálására szolgál. |
| ALLOC_FREESPACE_CACHE | Arra használják, hogy szinkronizálják a gyorsítótárhoz való hozzáférést, ahol rendelkezésre áll a halmok és bináris nagy objektumok (BLOB) számára. A zárakról szóló vita akkor fordulhat elő, amikor több kapcsolat egyszerre próbál sorokat behelyezni egy halomba vagy BLOB-ba. Ezt a vitát csökkentheted az objektum partíciójával. Minden partíciónak megvan a maga zára. A partíció több zár között osztja el a betéteket. |
| ALLOC_EXTENT_CACHE | Arra használják, hogy szinkronizálják a hozzáférést egy olyan gyorsítótárhoz, amely nem kiosztott oldalakat tartalmaz. A zárakról szóló vita akkor fordulhat elő, amikor több kapcsolat egyszerre próbálja az adatoldalakat ugyanabban az allokációs egységben osztani. Ez az ellentét csökkenthetjük azzal, hogy felosztjuk azt az objektumot, amelynek része ez az allokációs egységnek. |
| ACCESS_METHODS_DATASET_PARENT | Arra szolgál, hogy a gyermekadathalmazhoz való hozzáférést szinkronizálja a szülő adathalmazhoz párhuzamos műveletek során. |
| ACCESS_METHODS_HOBT_FACTORY | A belső hash tábla hozzáférésének szinkronizálására szolgál. |
| ACCESS_METHODS_HOBT | A HoBt memórián belüli reprezentációjához való hozzáférés szinkronizálására használják. |
| ACCESS_METHODS_HOBT_COUNT | Arra szolgál, hogy szinkronizálják a hozzáférést egy HoBt oldalhoz és sorszámlálókhoz. |
| ACCESS_METHODS_HOBT_VIRTUAL_ROOT | Arra használják, hogy szinkronizálják a hozzáférést egy belső B-fa gyökéroldalának absztrakciójához. |
| ACCESS_METHODS_CACHE_ONLY_HOBT_ALLOC | A munkaasztal hozzáférésének szinkronizálására szolgál. |
| ACCESS_METHODS_BULK_ALLOC | A hozzáférés szinkronizálására szolgál a tömeges allokátorok között. |
| ACCESS_METHODS_SCAN_RANGE_GENERATOR | Arra használják, hogy szinkronizálják a távolsággenerátorhoz való hozzáférést párhuzamos vizsgálatok során. |
| ACCESS_METHODS_KEY_RANGE_GENERATOR | Arra szolgál, hogy szinkronizálják az előreolvasási műveletekhez a kulcstartomány párhuzamos vizsgálatai során. |
| APPEND_ONLY_STORAGE_INSERT_POINT | Gyors, csak csatolt tárolóegységekben való beilletések szinkronizálására használják. |
| APPEND_ONLY_STORAGE_FIRST_ALLOC | Arra szolgál, hogy szinkronizálják az első allokációt egy csak kiegészítő tárolóegységhez. |
| APPEND_ONLY_STORAGE_UNIT_MANAGER | A gyors, csak csatolt tárolóegység-kezelő belső adatszerkezeti hozzáférési szinkronizációra használják. |
| APPEND_ONLY_STORAGE_MANAGER | A gyors, csak csatolt tárolóegység-kezelőben szinkronizálva zsugorítási műveletek szinkronizálására szolgál. |
| BACKUP_RESULT_SET | Párhuzamos biztonsági mentési eredményhalmazok szinkronizálására szolgál. |
| BACKUP_TAPE_POOL | A biztonsági kazetta poolok szinkronizálására használták. |
| BACKUP_LOG_REDO | A mentési napló újrafuttatásának szinkronizálására szolgál. |
| BACKUP_INSTANCE_ID | Arra szolgál, hogy szinkronizálják a biztonsági mentés teljesítményfigyelő számlálókhoz szükséges példányazonosítók generálását. |
| BACKUP_MANAGER | A belső biztonsági mentéskezelő szinkronizálására szolgál. |
| BACKUP_MANAGER_DIFFERENTIAL | A differenciális biztonsági mentési műveletek szinkronizálására használták DBCC-vel. |
| BACKUP_OPERATION | Belső adatszerkezeti szinkronizációra használják egy biztonsági mentési műveleten belül, például adatbázis-, napló- vagy fájlmentési műveletekben. |
| BACKUP_FILE_HANDLE | Fájlnyitási műveletek szinkronizálására szolgál a visszaállítás során. |
| PUFFER | Rövid távú hozzáférés szinkronizálására használják az adatbázis oldalakhoz. Pufferzár szükséges bármely adatbázis-oldal elolvasásához vagy módosításához. A buffer latch problémája több problémát is mutathat, például a fázisoldalakat és a lassú I/O-kat. Ez a latch osztály lefedi az oldalzárak minden lehetséges felhasználását. sys.dm_os_wait_stats különbséget jelent az oldallatch várakozások között, amelyeket az I/O műveletek okoznak, és az olvasási és írás műveletek között az oldalon. |
| BUFFER_POOL_GROW | Belső pufferkezelő szinkronizációra használják a buffer pool növekedési műveletek során. |
| DATABASE_CHECKPOINT | Adatbázison belüli ellenőrzőpontok sorializálására használják. |
| CLR_PROCEDURE_HASHTABLE | Csak belső használatra. |
| CLR_UDX_STORE | Csak belső használatra. |
| CLR_DATAT_ACCESS | Csak belső használatra. |
| CLR_XVAR_PROXY_LIST | Csak belső használatra. |
| DBCC_CHECK_AGGREGATE | Csak belső használatra. |
| DBCC_CHECK_RESULTSET | Csak belső használatra. |
| DBCC_CHECK_TABLE | Csak belső használatra. |
| DBCC_CHECK_TABLE_INIT | Csak belső használatra. |
| DBCC_CHECK_TRACE_LIST | Csak belső használatra. |
| DBCC_FILE_CHECK_OBJECT | Csak belső használatra. |
| DBCC_PERF | A belső teljesítménymérő számlálók szinkronizálására szolgál. |
| DBCC_PFS_STATUS | Csak belső használatra. |
| DBCC_OBJECT_METADATA | Csak belső használatra. |
| DBCC_HASH_DLL | Csak belső használatra. |
| EVENTING_CACHE | Csak belső használatra. |
| FCB | A fájlvezérlő blokkhoz való hozzáférés szinkronizálására szolgál. |
| FCB_REPLICA | Csak belső használatra. |
| FGCB_ALLOC | Használat a round robin allokációs információk szinkronizálására egy fájlcsoporton belül. |
| FGCB_ADD_REMOVE | A fájlcsoportokhoz való hozzáférés szinkronizálására adva, ejti, növelő és zsugorítási műveletekhez. |
| FILEGROUP_MANAGER | Csak belső használatra. |
| FILE_MANAGER | Csak belső használatra. |
| FILESTREAM_FCB | Csak belső használatra. |
| FILESTREAM_FILE_MANAGER | Csak belső használatra. |
| FILESTREAM_GHOST_FILES | Csak belső használatra. |
| FILESTREAM_DFS_ROOT | Csak belső használatra. |
| LOG_MANAGER | Csak belső használatra. |
| FULLTEXT_DOCUMENT_ID | Csak belső használatra. |
| FULLTEXT_DOCUMENT_ID_TRANSACTION | Csak belső használatra. |
| FULLTEXT_DOCUMENT_ID_NOTIFY | Csak belső használatra. |
| FULLTEXT_LOGS | Csak belső használatra. |
| FULLTEXT_CRAWL_LOG | Csak belső használatra. |
| FULLTEXT_ADMIN | Csak belső használatra. |
| FULLTEXT_AMDIN_COMMAND_CACHE | Csak belső használatra. |
| FULLTEXT_LANGUAGE_TABLE | Csak belső használatra. |
| FULLTEXT_CRAWL_DM_LIST | Csak belső használatra. |
| FULLTEXT_CRAWL_CATALOG | Csak belső használatra. |
| FULLTEXT_FILE_MANAGER | Csak belső használatra. |
| DATABASE_MIRRORING_REDO | Csak belső használatra. |
| DATABASE_MIRRORING_SERVER | Csak belső használatra. |
| DATABASE_MIRRORING_CONNECTION | Csak belső használatra. |
| DATABASE_MIRRORING_STREAM | Csak belső használatra. |
| QUERY_OPTIMIZER_VD_MANAGER | Csak belső használatra. |
| QUERY_OPTIMIZER_ID_MANAGER | Csak belső használatra. |
| QUERY_OPTIMIZER_VIEW_REP | Csak belső használatra. |
| RECOVERY_BAD_PAGE_TABLE | Csak belső használatra. |
| RECOVERY_MANAGER | Csak belső használatra. |
| SECURITY_OPERATION_RULE_TABLE | Csak belső használatra. |
| SECURITY_OBJPERM_CACHE | Csak belső használatra. |
| SECURITY_CRYPTO | Csak belső használatra. |
| SECURITY_KEY_RING | Csak belső használatra. |
| SECURITY_KEY_LIST | Csak belső használatra. |
| SERVICE_BROKER_CONNECTION_RECEIVE | Csak belső használatra. |
| SERVICE_BROKER_TRANSMISSION | Csak belső használatra. |
| SERVICE_BROKER_TRANSMISSION_UPDATE | Csak belső használatra. |
| SERVICE_BROKER_TRANSMISSION_STATE | Csak belső használatra. |
| SERVICE_BROKER_TRANSMISSION_ERRORS | Csak belső használatra. |
| SSBXmitWork | Csak belső használatra. |
| SERVICE_BROKER_MESSAGE_TRANSMISSION | Csak belső használatra. |
| SERVICE_BROKER_MAP_MANAGER | Csak belső használatra. |
| SERVICE_BROKER_HOST_NAME | Csak belső használatra. |
| SERVICE_BROKER_READ_CACHE | Csak belső használatra. |
| SERVICE_BROKER_WAITFOR_MANAGER | Arra szolgál, hogy szinkronizálja a várakozó sorok instance-szintű térképét. Egy sor létezik minden adatbázis azonosítóra, adatbázis verzióra és sorazonosító tuple-re. A zárakról szóló vita akkor fordulhat elő, amikor sok kapcsolat a következők: VÁRAKOZÁS (FOGADÁS) állapotban; VÁRNI (RECEIVE) HÍVÁST; túllépte a WAITFOR időkorlátot; üzenet fogadása; a WAITFOR(RECEIVE) tranzakciót tartalmazó tranzakció elkötése vagy visszafordítása; Csökkentheted a vitat, ha csökkented a szálak számát egy WAITFOR(RECEIVE) várakozási állapotban. |
| SERVICE_BROKER_WAITFOR_TRANSACTION_DATA | Csak belső használatra. |
| SERVICE_BROKER_TRANSMISSION_TRANSACTION_DATA | Csak belső használatra. |
| SERVICE_BROKER_TRANSPORT | Csak belső használatra. |
| SERVICE_BROKER_MIRROR_ROUTE | Csak belső használatra. |
| TRACE_ID | Csak belső használatra. |
| TRACE_AUDIT_ID | Csak belső használatra. |
| NYOM | Csak belső használatra. |
| TRACE_CONTROLLER | Csak belső használatra. |
| TRACE_EVENT_QUEUE | Csak belső használatra. |
| TRANSACTION_DISTRIBUTED_MARK | Csak belső használatra. |
| TRANSACTION_OUTCOME | Csak belső használatra. |
| NESTING_TRANSACTION_READONLY | Csak belső használatra. |
| NESTING_TRANSACTION_FULL | Csak belső használatra. |
| MSQL_TRANSACTION_MANAGER | Csak belső használatra. |
| DATABASE_AUTONAME_MANAGER | Csak belső használatra. |
| UTILITY_DYNAMIC_VECTOR | Csak belső használatra. |
| UTILITY_SPARSE_BITMAP | Csak belső használatra. |
| UTILITY_DATABASE_DROP | Csak belső használatra. |
| UTILITY_DYNAMIC_MANAGER_VIEW | Csak belső használatra. |
| UTILITY_DEBUG_FILESTREAM | Csak belső használatra. |
| UTILITY_LOCK_INFORMATION | Csak belső használatra. |
| VERSIONING_TRANSACTION | Csak belső használatra. |
| VERSIONING_TRANSACTION_LIST | Csak belső használatra. |
| VERSIONING_TRANSACTION_CHAIN | Csak belső használatra. |
| VERSIONING_STATE | Csak belső használatra. |
| VERSIONING_STATE_CHANGE | Csak belső használatra. |
| KTM_VIRTUAL_CLOCK | Csak belső használatra. |
Megjegyzés:
A dokumentáció általában a B-fa kifejezést használja az indexekre hivatkozva. A sorkataszterekben az adatbázismotor egy B+ fát implementál. Ez nem vonatkozik az oszlopcentrikus indexekre vagy a memóriaoptimalizált táblák indexére. További információ: SQL Server és Azure SQL index architektúrája és tervezési útmutatója.
Lásd még:
DBCC SQLPERF (Transact-SQL)
SQL Server operációs rendszerhez kapcsolódó dinamikus felügyeleti nézetek (Transact-SQL)
SQL Server, Latches Object