Vistas de administración dinámica del sistema

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de SQL Analytics en Microsoft FabricAlmacén en Microsoft FabricBase de datos SQL en Microsoft Fabric

Las vistas de administración dinámica (DMV) y las funciones de administración dinámica (DMF) devuelven información de estado del servidor que se puede usar para supervisar el estado de una instancia de servidor, diagnosticar problemas y optimizar el rendimiento.

Importante

Las funciones y vistas de administración dinámica devuelven datos sobre el estado interno de la implementación. Sus esquemas y los datos que devuelven podrían cambiar en futuras versiones de SQL Server. Por lo tanto, las funciones y vistas de administración dinámica en versiones futuras podrían no ser compatibles con las funciones y vistas de administración dinámica de esta versión. Por ejemplo, en futuras versiones de SQL Server, Microsoft podría aumentar la definición de cualquier vista de administración dinámica agregando columnas al final de la lista de columnas. Se recomienda no usar la sintaxis SELECT * FROM dynamic_management_view_name en código para producción, ya que el número de columnas devueltas podría cambiar y alterar la aplicación.

Hay dos tipos de funciones y vistas de administración dinámica:

  • Funciones y vistas de administración dinámica con ámbito en el servidor. Se requiere el permiso VIEW SERVER STATE en el servidor. Para SQL Server 2022 y versiones posteriores, se requiere VIEW SERVER PERFORMANCE STATE o SE requiere VIEW SERVER SECURITY STATE para algunas DMV relacionadas con la seguridad.

  • Funciones y vistas de administración dinámica con ámbito en la base de datos. Se requiere el permiso VIEW DATABASE STATE en la base de datos. Para SQL Server 2022 y versiones posteriores, se requiere VIEW DATABASE PERFORMANCE STATE o VIEW DATABASE SECURITY STATE es necesario para algunas DMV relacionadas con la seguridad.

Vistas de administración dinámica de consultas

Se puede hacer referencia a vistas de administración dinámica en instrucciones de Transact-SQL usando nombres formados por dos, tres o cuatro partes. Por otro lado, se puede hacer referencia a funciones de administración dinámica en instrucciones de Transact-SQL usando nombres formados por dos o tres partes. No se puede hacer referencia a las vistas y funciones de administración dinámica en instrucciones Transact-SQL mediante nombres de una sola parte.

Todas las funciones y vistas de administración dinámica existen en el esquema sys y siguen la convención de nomenclatura siguiente: dm_*. Cuando utilice una función o vista de administración dinámica, debe agregar un prefijo al nombre de la función o vista mediante el esquema sys. Por ejemplo, para consultar la vista de administración dinámica dm_os_wait_stats, ejecute la consulta siguiente:

SELECT wait_type,
       wait_time_ms
FROM sys.dm_os_wait_stats;

Permisos necesarios

Para consultar una vista o función de administración dinámica, se requiere SELECT permiso para el objeto o VIEW SERVER STATEVIEW DATABASE STATE el permiso. Así podrá restringir de forma selectiva el acceso de un usuario o inicio de sesión a las funciones y vistas de administración dinámica. Para ello, cree primero el usuario en master y, a continuación, deniegue el permiso de usuario SELECT en las vistas o funciones de administración dinámica a las que no desea que accedan. Después de esto, el usuario no puede seleccionar entre estas funciones o vistas de administración dinámica, independientemente del contexto de base de datos del usuario.

Nota:

Dado que DENY tiene prioridad, si a un usuario se le han concedido permisos VIEW SERVER STATE pero se le deniega VIEW DATABASE STATE el permiso, el usuario puede ver información de nivel de servidor, pero no información de nivel de base de datos.