¿DMVs en SQL Azure?

Desde su aparición en SQL Server 2005 las DMVs han sido una herramienta muy necesaria para poder detectar y solucionar problemas de rendimiento en SQL Server.

SQL Azure está basado en SQL Server, pero desgraciadamente muchas de las DMVs no está disponibles en esta primera versión de Azure….aunque sí que quieren ir añadiéndolas en sucesivas versiones. Esperemos que llegue pronto!

El principal problema por el cuál no están soportadas todas las DMVs es porque en SQL Server éstas funcionan a nivel de instancia, cosa que en SQL Azure no es posible, tendrían que funcionar a nivel de base de datos. Este trabajo es el que deben hacer para que todas las DMVs estén accesibles también en SQL Azure.

Por ejemplo, el permiso que hay que tener para trabajar con DMVs en Azure es VIEW DATABASE STATE, mientras que en SQL Server es VIEW SERVER STATE ).

Microsoft ha publicado un documento bastante interesante dónde se comentan las diferentes DMVs disponibles en esta primera versión de SQL Azure, documento que podéis descargar desde aquí.

Algún ejemplo sacado de la documentación…

Identificar los planes de ejecución que provocan excesivas recompilaciones.

select top 25 
    sql_text.text, 
    sql_handle, 
    plan_generation_num, 
    execution_count, 
    dbid, 
    objectid  
from  
    sys.dm_exec_query_stats a 
    cross apply sys.dm_exec_sql_text(sql_handle) as sql_text 
where  
    plan_generation_num >1 
order by plan_generation_num desc

 

Identificar planes de ejecución ineficientes:

select  
    highest_cpu_queries.plan_handle,  
    highest_cpu_queries.total_worker_time, 
    q.dbid, 
    q.objectid, 
    q.number, 
    q.encrypted, 
    q.[text] 
from  
    (select top 50  
        qs.plan_handle,  
        qs.total_worker_time 
    from  
        sys.dm_exec_query_stats qs 
    order by qs.total_worker_time desc) as highest_cpu_queries 
    cross apply sys.dm_exec_sql_text(plan_handle) as q 
order by highest_cpu_queries.total_worker_time desc

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *