Exportar (0) Imprimir
Expandir todo

Supervisar Base de datos SQL de Azure mediante vistas de administración dinámica

Actualizado: noviembre de 2014

Microsoft Base de datos SQL de Microsoft Azure habilita un subconjunto de vistas de administración dinámica para diagnosticar los problemas de rendimiento, que podrían deberse a consultas bloqueadas o de ejecución prolongada, cuellos de botella de recursos, planes de consulta deficientes, etc. En este tema se proporciona información sobre cómo detectar problemas de rendimiento frecuentes usando las vistas de administración dinámica de Base de datos SQL de Microsoft Azure.

Base de datos SQL de Microsoft Azure admite parcialmente tres categorías de vistas de administración dinámica:

  • Vistas de administración dinámica relacionadas con la base de datos.

  • Vistas de administración dinámica relacionadas con ejecuciones.

  • Vistas de administración dinámica relacionadas con transacciones.

Para obtener información detallada sobre las vistas de administración dinámica, vea Funciones y vistas de administración dinámica (Transact-SQL) en los Libros en pantalla de SQL Server.

En Base de datos SQL de Microsoft Azure, para consultar una vista de administración dinámica se necesitan permisos VIEW DATABASE STATE. El permiso VIEW DATABASE STATE devuelve información sobre todos los objetos de la base de datos actual.

Para conceder el permiso VIEW DATABASE STATE a un usuario concreto de la base de datos, ejecute la consulta siguiente:

GRANT VIEW DATABASE STATE TO database_user;

En una instancia de SQL Server local, las vistas de administración dinámica devuelven información sobre el estado del servidor. En Base de datos SQL de Microsoft Azure, devuelven información relativa a su base de datos lógica actual únicamente.

noteNota
Al ejecutar las vistas sys.dm_exec_sessions y sys.dm_exec_requests, si el usuario tiene el permiso VIEW DATABASE STATE en la base de datos, verá todas las sesiones en ejecución de la base de datos; de lo contrario, el usuario solo verá la sesión actual.

La consulta siguiente devuelve el tamaño de la base de datos (en megabytes):

-- Calculates the size of the database. 

SELECT SUM(reserved_page_count)*8.0/1024

FROM sys.dm_db_partition_stats; 

GO

La consulta siguiente devuelve el tamaño de los objetos individuales (en megabytes) de la base de datos:

-- Calculates the size of individual database objects. 

SELECT sys.objects.name, SUM(reserved_page_count) * 8.0 / 1024

FROM sys.dm_db_partition_stats, sys.objects 

WHERE sys.dm_db_partition_stats.object_id = sys.objects.object_id 

GROUP BY sys.objects.name; 

GO

Puede usar la vista sys.dm_exec_connections para recuperar información sobre las conexiones establecidas con un servidor Base de datos SQL de Azure concreto y los detalles de cada conexión. Además, la vista sys.dm_exec_sessions es útil para recuperar información sobre todas las conexiones de usuario activas y las tareas internas.

La consulta siguiente recupera información sobre la conexión actual:

Las consultas de ejecución lenta o prolongada pueden consumir muchos recursos del sistema. En esta sección se muestra cómo utilizar vistas de administración dinámica para detectar algunos problemas frecuentes de rendimiento de las consultas. Para obtener información detallada, vea el artículo relativo a la solución de problemas de rendimiento en SQL Server 2005 en Microsoft TechNet.

En el ejemplo siguiente se devuelve información acerca de las cinco primeras consultas clasificadas por el promedio de tiempo de CPU. Este ejemplo agrega las consultas según su hash de consulta para agrupar las consultas lógicamente equivalentes según su consumo acumulado de los recursos.

Las consultas de ejecución lenta o prolongada pueden contribuir al consumo excesivo de recursos y ser la consecuencia de consultas bloqueadas. La causa del bloqueo puede ser un mal diseño de las aplicaciones, planes de consulta no válidos, la ausencia de índices útiles, etc. Puede utilizar la vista sys.dm_tran_locks para obtener información sobre la actividad de bloqueo actual en su Base de datos SQL de Azure. Para obtener código de ejemplo, vea sys.dm_tran_locks (Transact-SQL) en los Libros en pantalla de SQL Server.

Un plan de consulta ineficaz también puede aumentar el consumo de la CPU. En el ejemplo siguiente se usa la vista sys.dm_exec_query_stats para determinar qué consulta emplea más CPU acumulada.

Mostrar:
© 2015 Microsoft