Sdílet prostřednictvím


sys.dm_exec_query_resource_semaphores (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 aktuálním stavu dotazu-resource semaforu v SQL Serveru. sys.dm_exec_query_resource_semaphores poskytuje obecný stav paměti při dotazování a umožňuje zjistit, zda systém má přístup k dostatečnému množství paměti. Tento pohled doplňuje informace z paměti získané z sys.dm_os_memory_clerks a poskytuje úplný obraz o stavu paměti serveru. sys.dm_exec_query_resource_semaphores vrací jeden řádek pro běžný semafor zdrojů a další řádek pro semafor pro malý dotaz. Existují dva požadavky na semafor s malým dotazem:

  • Požadovaný příspěvek na paměť by měl být menší než 5 MB

  • Náklady na dotaz by měly být nižší než 3 nákladové jednotky

Poznámka:

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

Název sloupce Datový typ Description
resource_semaphore_id smallint Neunikátní identifikace semaforu zdroje. 0 pro běžný semafor zdrojů a 1 pro semafor pro malé dotazy.
target_memory_kb bigint Přidělte cíl využití v kilobajtech.
max_target_memory_kb bigint Maximální potenciální cíl v kilobajtech. NULL pro semafor pro malé dotazy a zdroje.
total_memory_kb bigint Paměť držená semaforem zdrojů v kilobajtech. Pokud je systém pod tlakem paměti nebo pokud je nucená minimální paměť často udělována, může být tato hodnota větší než hodnoty target_memory_kb nebo max_target_memory_kb . Celková paměť je součet dostupné a přidělené paměti.
available_memory_kb bigint Paměť dostupná pro nový grant v kilobajtech.
granted_memory_kb bigint Celková povolená paměť v kilobajtech.
used_memory_kb bigint Fyzicky využíval část přidělené paměti v kilobajtech.
grantee_count int Počet aktivních dotazů, u kterých byly splněny granty.
waiter_count int Počet dotazů čekajících na schválení grantů.
timeout_error_count bigint Celkový počet chyb při vypršení času od spuštění serveru. NULL pro semafor pro malé dotazy a zdroje.
forced_grant_count bigint Celkový počet vynucených minimálních povolení paměti od spuštění serveru. NULL pro semafor pro malé dotazy a zdroje.
pool_id int ID zdrojového fondu, do kterého tento semafor patří.
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

Dotazy využívající dynamické manažerské pohledy zahrnující ORDER BY nebo agregáty mohou zvýšit spotřebu paměti a tím přispět k problému, který řeší.

Používejte sys.dm_exec_query_resource_semaphores pro řešení problémů, ale nezahrňujte ho do aplikací, které budou používat budoucí verze SQL Serveru.

Funkce Resource Govern umožňuje správce databáze rozdělit serverové zdroje mezi zdrojové pooly, až do maxima 64 poolů. V SQL Server 2012 (11.x) a vyšších se každý pool chová jako malá nezávislá serverová instance a vyžaduje 2 semafory.

Viz také

zobrazení a funkce související se spouštěním dynamické správy (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)