Megosztás a következőn keresztül:


sys.dm_exec_query_resource_semaphores (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Visszaadja az SQL Server aktuális lekérdezés-erőforrás szemafór állapotának adatait. sys.dm_exec_query_resource_semaphores általános lekérdezés-végrehajtási memória állapotot biztosít, és lehetővé teszi, hogy megállapítsd, a rendszer képes elegendő memóriához hozzáférni. Ez a nézet kiegészíti a sys.dm_os_memory_clerks-ről származó memóriainformációkat, hogy teljes képet adjon a szerver memória állapotáról. sys.dm_exec_query_resource_semaphores egy sort ad vissza a normál erőforrás-szemafórnak, egy másik sor pedig a kis lekérdezésű erőforrás-szemafornak. Két követelmény van egy kis lekérdezésű szemafórhoz:

  • A kért memória engedély kevesebbnek kell lennie, mint 5 MB

  • A lekérdezési költségnek kevesebbnek kell lennie, mint 3 költségegység

Megjegyzés:

Ha ezt az Azure Synapse Analytics vagy az Analytics Platform System (PDW) szolgáltatásból szeretné meghívni, használja a nevet sys.dm_pdw_nodes_exec_query_resource_semaphores. Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Oszlop név Adattípus Description
resource_semaphore_id smallint Az erőforrás szemafór nem egyedi azonosítója. 0 a normál erőforrás-szemafórhoz és 1 a kis lekérdezésű erőforrás-szemafórhoz.
target_memory_kb bigint Megadjuk a használati célt kilobájtokban.
max_target_memory_kb bigint Maximális potenciális célpont kilobájtokban. NULL a kis lekérdezésű erőforrás szemafórhoz.
total_memory_kb bigint Memória a forrás szemafóra által kilobájtokban tartva. Ha a rendszer memórianyomás alatt áll, vagy ha gyakran engedélyezik a kényszerített minimum memóriát, ez az érték nagyobb lehet a target_memory_kb vagy max_target_memory_kb értékeknél. A teljes memória a rendelkezésre álló és engedélyezett memória összege.
available_memory_kb bigint Memória elérhető egy új támogatáshoz kilobájtokban.
granted_memory_kb bigint Teljes megengedett memória kilobájtokban.
used_memory_kb bigint Fizikailag használták a megadott memória egy részét kilobájtokban.
grantee_count int Azok az aktív lekérdezések száma, amelyeknek támogatásuk teljesült.
waiter_count int Olyan lekérdezések száma, amelyek várnak a támogatások kielégítésére.
timeout_error_count bigint A szerver indítása óta összesen az idő-out hibák száma. NULL a kis lekérdezésű erőforrás szemafórhoz.
forced_grant_count bigint A szerver indítása óta kényszerített minimális memória támogatások összesített száma. NULL a kis lekérdezésű erőforrás szemafórhoz.
pool_id int Az erőforrás-pool azonosítója, amelyhez ez az erőforrás-szemafór tartozik.
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

Azok a lekérdezések, amelyek dinamikus menedzsment nézeteket használnak, amelyek tartalmazzák a ORDER BY vagy aggregátumokat, növelhetik a memóriafogyasztást, és így hozzájárulhatnak a probléma megoldásához.

Használd sys.dm_exec_query_resource_semaphores hibakereséshez, de ne alkalmazd olyan alkalmazásokban, amelyek a jövőbeli SQL Server verziókat fogják használni.

A Resource Governor funkció lehetővé teszi az adatbázis-adminisztrátor számára, hogy szerver erőforrásait oszlassa meg az erőforrás-poolok között, legfeljebb 64 pool között. Az SQL Server 2012 (11.x) és újabb verziókban minden pool úgy viselkedik, mint egy kis, független szerverpéldány, és két szemafórt igényel.

Lásd még:

végrehajtással kapcsolatos dinamikus felügyeleti nézetek és függvények (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)