Systemdynamiska förvaltningsvyer och funktioner

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Dynamiska hanteringsobjekt inkluderar dynamiska förvaltningsvyer (DMV) och dynamiska hanteringsfunktioner (DMF). Dessa objekt returnerar serverstatusinformation som du kan använda för att övervaka hälsan hos en serverinstans, diagnostisera problem och justera prestandan.

Dynamiska hanteringsobjekt är antingen server-begränsade eller databas-scoped.

Fråga dynamiska hanteringsobjekt

Alla dynamiska hanteringsobjekt finns i schemat sys och följer namngivningskonventionen dm_*.

När du använder ett dynamiskt hanteringsobjekt måste du prefixa objektets namn genom att använda schemat sys . Till exempel, för att fråga den dynamiska hanteringsvyn dm_os_wait_stats , kör följande fråga:

SELECT wait_type,
       wait_time_ms
FROM sys.dm_os_wait_stats;

Följande tabell beskriver hur man refererar till dynamiska hanteringsobjekt i Transact-SQL:

T-SQL-referens Dynamisk hanteringsvy Dynamisk ledningsfunktion
Endelad namngivning No No
Tvådelad namngivning Yes Yes
Tredelad namngivning Yes Yes
Fyrdelad namngivning Yes No

Anmärkningar

Dynamiska hanteringsobjekt returnerar interna, implementationsspecifika tillståndsdata. Deras scheman och data de returnerar kan ändras i framtida Database Engine-versioner. Därför kan dynamiska hanteringsobjekt i framtida versioner vara inkompatibla med dynamiska hanteringsobjekten i denna version.

Till exempel kan Microsoft i framtida Database Engine-versioner utöka definitionen av vilken dynamisk hanteringsvy som helst genom att lägga till kolumner i slutet av kolumnlistan. Använd inte syntaxen SELECT * FROM dynamic_management_view_name i produktionskod eftersom antalet returnerade kolumner kan förändras och förstöra din applikation.

Permissions

Att fråga ett dynamiskt hanteringsobjekt kräver SELECT behörighet på objektet och beror på objektets omfattning och Databasmotor för SQL Server-versionen:

Version Serveromfattning Databasomfång
SQL Server 2019 (15.x) och tidigare versioner VIEW SERVER STATE VIEW DATABASE STATE
SQL Server 2022 (16.x) och senare versioner VIEW SERVER PERFORMANCE STATE, eller VIEW SERVER SECURITY STATE för säkerhetsrelaterade objekt VIEW DATABASE PERFORMANCE STATE, eller VIEW DATABASE SECURITY STATE för säkerhetsrelaterade objekt

För att selektivt begränsa åtkomsten, skapa användaren eller logga in master och neka sedan användarbehörigheten SELECT på de specifika dynamiska hanteringsvyer eller funktioner du vill blockera. Användaren kan inte välja från dessa objekt efteråt, oavsett databasens kontext.

Note

DENY har företräde framför GRANT. Till exempel kan en användare som beviljats VIEW SERVER PERFORMANCE STATE men nekats VIEW DATABASE PERFORMANCE STATE se servernivåinformation men inte databasnivåinformation.