Novo Visual de DMV’s no SQL Server 2012

Posted on junho 29, 2012

2


 

Com o lançamento do novo SQL Server 2012 novos recursos são esperados para nós DBA’s e DEV’s.

 

Por isso irei mostrar aqui as modificações que tivemos em algumas DMV’S no SQL Server 2012.

 

sys.dm_exec_query_stats 

Foram acrescentados alguns campos, são eles:

 

total_rows – Quantidade total de linhas retornadas pela consulta.

 

last_rows – Quantidade de registos retornados na última execução da consulta.

 

min_rows – Quantidade de registros retornados na consulta sobre o tempo que o plano foi executado ou compilado pela última vez.

 

max_rows – Quantidade máxima de registros retornadas pela consulta sobre o tempo que o plano foi executado ou compilado pela última vez.

 

Esses campos ajudaram a medir e realizar um plano de otimização mais bem relevante. Sabendo a quantidade e o máximo de linhas retornados de acordo com a execução, poderemos realizar métricas interessantes durante otimização de uma consulta.

 

SELECT *

FROM sys.dm_exec_query_stats

 

Capture

(Figura 1 – Novas colunas na DMV – sys.dm_exec_query_stats.)

 

sys.dm_os_volume_stats

Essa DMV foi implementada no SQL Server 2008 R2 e é utilizada para visualizar informações dos volumes do sistema operacional. Porém algumas alterações foram feitas no SQL Server 2012.

 

Com isso, dois argumentos são necessários, ID do banco de dados e ID do arquivo.

 

SELECT *

FROM sys.dm_os_volume_stats(DB_ID(),1)

 

SELECT DB_NAME(f.database_id) AS DatabaseName,

        FILE_NAME(f.file_id) AS FileName,

        type,

        type_desc,

        data_space_id,

        name,

        physical_name,

        state,

        state_desc,

        size,

        volume_mount_point,

        volume_id,

        logical_volume_name,

        file_system_type,

        total_bytes,

        available_bytes

FROM sys.master_files AS f

CROSS APPLY sys.dm_os_volume_stats(f.database_id, f.file_id)

ORDER BY DatabaseName

Para nos ajudar, fazendo um CROSS APPLY com sys.master_files conseguimos assim retornar todos os arquivos para cada banco de dados. Assim você poderá analisar as informações e arquivos de todos os bancos de dados de uma só vez, se desejar realizar um relatório com essas informações, será de bom uso.

 

Capture

(Figura 2 – Melhorias na DMV – sys.dm_os_volume_stats.)

 

sys.dm_os_windows_info

Retorna informações do sistema operacional, como SP, language pack e outros.

 

SELECT windows_release, windows_service_pack_level, windows_sku, os_language_version

FROM sys.dm_os_windows_info;

 

Sempre bom armazenar essas informações, um DBA deve ter conhecimento de todo o seu ambiente  e o que os cerca.

 

image

(Figura 3 – Informações do sistema operacional.)

 

sys.dm_server_services

Realiza a visualização dos serviçoes referentes ao SQL Server.

SELECT *

FROM sys.dm_server_services

Importante saber se a inicialização por exemplo do SQL Server Agent está automática em um servidor de produção, assim se todos os outros serviços estão disponíveis como a conta de cada um.

image

(Figura 4 – Serviços do SQL Server sendo mostrados.)

sys.dm_server_registry

Mostra informações de registros de configuração do SQL Serer. Esse recurso pode ser bastante utilizado para auditoria.

SELECT *

FROM sys.dm_server_registry

Como uma boa prática é interessante guardar versões dessas informações de uma instância, porque caso haja algum erro, você poderá ver se alguma configuração foi alterada como conta de serviço, traceflag dentre outros.

 

 

image(Figura 5 – Visualizando registros da instância do SQL Server 2012.)

 

sys.dm_server_memory_dumps

Irá retornar todos os dumps criados. Entenda melhor sobre os memeory dumps aqui – http://sql-blogs.com/2012/01/25/complete-explanation-of-sql-server-memory-dumps-and-its-types/

SELECT *

FROM sys.dm_server_memory_dumps

image

(Figura 5 – Memory Dumps criados.)

 

 

Deseja maiores informações, então entre no TechNet e MSDN por aqui – http://msdn.microsoft.com/en-us/library/cc645579.aspx