O Performance Data Warehouse que também é conhecido como Performance Studio é um recurso implementado no SQL Server 2008 que permite a coleta de informações para estudo e análise de performance.
Esse novo recurso é baseado em uma feature chamada de Data Collector e está sobre dois pilares:
- SSIS (SQL Server Integration Services)
- SQL Server Agent
Toda a coleta de dados feita é armazenada em um database previamente configurado, e a coleta pode ser feita através dos tipos de coletores abaixo:
- T-SQL Query
- SQL Trace
- Performance Counter
- Query Activity
O Data Collector gera dinamicamente os resultados gravando em tabelas de output, quando os resultados forem gerados a partir de query devemos ter o cuidado de não incluir na consulta campos com nomes como snapshot_time, snapshot_id ou database_name, isso porque são nomes reservados do Data Collector.
Outra consideração é campos do tipo XML, Text, Image, nText não serão incluídos no retorno e não serão coletados.
As DMVs para consultar o Query Activity Collector são:
-
- Sys.dm_exec_requests
- Sys.dm_exec_sessions
- Sys.dm_exec_query_stats
Para utilizarmos esse recurso precisamos seguir os passos que eu vou descrever abaixo:
-
- Habilitar o Data Collection
- Configurar o banco de dados que gravará a coleta
- E analisar os dados
- Vejamos isso na pratica é muito fácil.
Configurando o Data Collector
No Manegement Studio, abra o Object Explorer e expanda a guia Management, lá haverá um item chamado Data Collection, para habilitar basta clicar com o botão direito e clicar na opção Enable Data Collection
Acesse o Data Collection novamente com o botão direito do mouse e clique na opção Configure Management Data Warehouse, isso abrirá um wizard, basta avançar na tela de Welcome e na próxima tela marcar Create or upgrade a management data warehouse e clique em avançar.
Na próxima tela iremos definir os dados de gravação da coleta, no caso o database. Para isso clique em New, isso fará com que abra a tela de New Database crie um banco de dados chamado coleta, clique em OK, e voltaremos ao Wizard do Data Collection e é só avançar para continuarmos.
Map Logins and Users é onde selecionaremos os usuários e os logins que serão usados para coleta. Nesse caso selecione o usuário que corresponde ao SQL Server Service e a role mdw_admin. Após configurar essa etapa basta avançar e concluir.
Configurando o Management Data Warehouse
Agora que temos o Data Collector configurado, vamos configurar o Management Data Warehouse, clique com o botão direito sobre o item Data Collection e selecione a opção Configure Management Data Warehouse, selecione Set up data collection e clique em avançar.
Na próxima tela, vamos deixar as opções padrão e avançar, ao fazer isso, abrira a tela de autenticação do SQL Server confirme as credenciais e clique em finalizar.
Agendando a coleta
As coletas não precisam ser feitas sempre? Ou precisam? Essa pergunta é respondida apenas com estudo de caso da situação, algumas vezes, na maior parte dos casos vamos coletar apenas em períodos em que uma determinada situação ocorre.
Para realizarmos o agendamento de um item, como exemplo a utilização de disco, vamos expandir o item System Data Collection Sets e clicar sobre Disk Usage com o botão direito e selecionar propriedades.
Na tela de propriedades, sobre a opção Data collection and upload temos o Schedule, clique em New. Isso abrirá a tela de New Job Schedule e é só preencher o nome e o período do agendamento. Veja a imagem abaixo, o agendamento foi feito para acontecer todas as segundas-feiras , quartas-feiras, sextas-feiras e sábados às 13 horas.
Importante lembrar que o agendamento só irá funcionar se o serviço do SQL Server Agent for inicializado.
Relatório
Ok, temos um coletor de informações que esta programado para acontecer em determinado período, mas e como vamos visualizar essas informações?
Simples, na opção Data Collection clicamos com o botão direito do mouse e sobre o item Reports, abrirá o item Management Data Warehouse e nessa opção encontraremos o item Disk Usage Summary.
Espero que esse post tenha sido proveitoso a todos.
Abraço, Rodrigo