Dynamische beheerweergaven en functies van het systeem

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Dynamische beheerobjecten omvatten dynamische beheerweergaven (DMV's) en dynamische beheerfuncties (DMF's). Deze objecten geven serverstatusinformatie terug die je kunt gebruiken om de gezondheid van een serverinstantie te monitoren, problemen te diagnosticeren en de prestaties af te stemmen.

Dynamische beheerobjecten zijn ofwel server-scoped of database-scoped.

Vraag dynamische beheerobjecten op

Alle dynamische beheerobjecten bestaan in het sys schema en volgen de naamgevingsconventie dm_*.

Wanneer je een dynamisch beheerobject gebruikt, moet je de naam van het object voorafgaan door het schema te sys gebruiken. Om bijvoorbeeld de dm_os_wait_stats dynamische beheerweergave te bevragen, voer je de volgende query uit:

SELECT wait_type,
       wait_time_ms
FROM sys.dm_os_wait_stats;

De volgende tabel beschrijft hoe dynamische beheerobjecten in Transact-SQL te refereren:

T-SQL-verwijzing Dynamische beheerweergave Dynamische beheerfunctie
Eenpartijige naamgeving No No
Tweedelige naamgeving Yes Yes
Driedelige naamgeving Yes Yes
Vierdelige naamgeving Yes No

Opmerkingen

Dynamische beheerobjecten geven interne, implementatie-specifieke toestandgegevens terug. Hun schema's en de data die ze teruggeven kunnen veranderen in toekomstige Database Engine-releases. Daarom zijn dynamische beheerobjecten in toekomstige releases mogelijk niet compatibel met de dynamische beheerobjecten in deze release.

Zo kan Microsoft in toekomstige Database Engine-releases de definitie van elke dynamische beheerweergave uitbreiden door kolommen aan het einde van de kolomlijst toe te voegen. Gebruik de syntaxis SELECT * FROM dynamic_management_view_name niet in productiecode, want het aantal teruggegeven kolommen kan veranderen en je applicatie kapot maken.

Permissions

Het opvragen van een dynamisch beheerobject vereist SELECT toestemming voor het object en hangt af van de scope van het object en de versie van de SQL Server Database Engine:

Versie Serverscope Databasebereik
SQL Server 2019 (15.x) en eerdere versies VIEW SERVER STATE VIEW DATABASE STATE
SQL Server 2022 (16.x) en latere versies VIEW SERVER PERFORMANCE STATE, of VIEW SERVER SECURITY STATE voor beveiligingsgerelateerde objecten VIEW DATABASE PERFORMANCE STATE, of VIEW DATABASE SECURITY STATE voor beveiligingsgerelateerde objecten

Om selectief toegang te beperken, maak je de gebruiker aan of log je in master en weiger je die gebruikerstoestemming SELECT voor de specifieke dynamische beheerweergaven of functies die je wilt blokkeren. De gebruiker kan daarna niet meer uit die objecten kiezen, ongeacht de context van de database.

Note

DENY heeft voorrang op GRANT. Bijvoorbeeld, een gebruiker die is verleend VIEW SERVER PERFORMANCE STATE maar geweigerd VIEW DATABASE PERFORMANCE STATE kan serverinformatie zien, maar geen database-niveau informatie.