Archive

Posts Tagged ‘Profiler’

O que é o DTA?

Amigos da comunidade, blz? Esse post é dedicado a um outro amigo de trabalho. O DBA Felipe Melo , conhecimento SQL Geek em replicação, tunning e T-SQL. Sempre trocamos uma “figurinha” nos desafios profissionais, afinal, sempre é bom ter uma outra opinião. A certeza é: Nunca estamos totalmente certos! Mão na massa!?

O Database Engine Tuning Advisor é uma das “novas” features do SQL Server, ele analisa arquivos de carga de trabalho e propõe alterações no banco de dados, a fim de melhorar seu desempenho geral.

Para as alterações propostas, o Tuning Advisor também mostra o impacto que causará cada modificação.

Entre as suas capacidades, estão:

  • Query Optimazer, para propor índices e visões indexadas;
  • Recomendação de particões;
  • Análise de impacto das recomendações;
  • Fornecimento de informações sobre o número de consultas e o número de índices.

Opções de ajuste:

  • Quais objetos o Tuning Advisor poderá recomendar;
  • Quais partições analisará;
  • Quais estruturas serão mantidas no banco de dados;
  • Espaço máximo para recomendações;
  • Número máximo de columas por índice.

Criando analises com o DTA

Para iniciar o DTA, vá em StartAll / Programs / Microsoft SQL Server 2008 / Performance Tools / DataBase Engine Tunning Advisor.

Quando o programa for iniciado, clique em File/New Connection.

Aparecerá a tela de conexão para qual servidor você deseja criar a análise

Obs: Para o exemplo será usado um ambiente de testes.

O servidor será mostrado no canto superior direito da tela, clique com o botão direito e escolha a opção New Session.

A seguinte tela será mostrada:

Clique na guia Tunning Options e será mostrado a seguinte tela:

Physical Design Structure(PDS) to use in database: Esta opção avalia o que a Engine do DTA irá analisar referente a objetos de design na estrutura do banco(índex,índex views e etc). A opção de Índex views é desabilitada no SQL Server STD.

Partitioning strategy to employ: A opção de particionamento, verifica se existem objetos que podem ser particionados e avalia o particionamento que já existente. Disponível somente na versão Enterprise do SQL Server.

Physical Design Structure(PDS) to keep in database: Avalia a estrutura fisica do banco, abalia se existem índices clustereds e nonclustereds devem ser deletados(ele não deleta os indices), ou se existe algo divergente na no modelo como um todo. O padrão é Keep All existing PDS.

Voltando a guia General, aonde:

  • Session Name: Nome da Sessão
  • WorkLoad: A origem de ondes virão os dados que serão analisados(no caso do profiler o mesmo pode ser um arquivo ou uma tabela)
  • DataBase for WorkLoad Analysis: Aonde serão gaurdadas as analises temporarias.
  • Select DataBase and tables to tune: Lista de banco de dados e de tabelas que serão parte da analise. (sempre coloque os bancos de dados que [*] foram filtrados no profiler)

Coloque o nome no profiler e escolha o caminho aonde está o arquivo de trace do profiler. Ao clicar no Radio Button File, clique no binóculo a esquerda e será aberta a tela do Windows. Escolha o profiler que deseja analisar.

Clique em abrir.

Caso o trace tenha sido guardado em uma tabela, marque o Radio Button Table, clique no binóculo a esquerda e será aberta a tela de conexão:
Escolha qual banco, schema e tabelas estão os profilers que foram armazeandos.

Obs:  O login qual abriu a sessão no DTA deve ter acesso as tabelas que estão os traces, caso contrário, uma mensagem de erro será retornada.

 

O preenchimento deve ficar parecido com a tela abaixo:

 

Clique no botão Start Analysis. Após clicar em Star Analysis, uma tela de progresso será exibida.

 

Na guia recomendações, é apresenta a porcentagem de melhoria da análise.

 

No menu Actions aparecerá a opção de aplicar as recomendações ou savá-las.
Clique em Save Recommendations

Será gerado um arquivo .sql com as recomendações.

Espero Ter ajudado

 

Integrando os contadores do System Monitor ao SQL Server Profiler

Esse artigo é dedicado ao meu amigo Marcelo Fernandes da Silva (Misifio/D2). Graças a ele, estou no “mundo SQL Server”. Sempre está me incentivando e me dando uns helps.Quem o conhece sabe o quanto ele conhece(É muitooo viuuuu!) de SQL Server. Vamos ao trabalho.

Esse procedimento pode ser implementado em um ambiente que existe diversos sites, e você deseja realizar um procedimento pró-ativo de melhoria no ambiente começando pelo código T-SQL que é executado no mesmo.

Capturando Log Counters.

O primeiro passo é capturar as informações numericas relacionadas a gargalo de disco, processamento, memória e etc. Abra o System Monitor conforme figura abaixo:

Clique com o botão direito em Counters Log e escolha a opção New Log Settings..

Aparecerá uma caixa solicitando o nome do Counter Log a ser criado. Preencha e clique em OK.

Aparecerá a já nela de configurações dos contadores a ser escolhido.

Current log file name:  Caminho e Nome do arquivo do contador
Add Objects:  Lista de objetos do System Monitor
Add Counters:  Lista de Contadores do System Monitor
Interval: Intervalo de tempo em que os dados serão coletados
Run As: Credencial que irá executar o counter log e gravar os arquivos na pasta que será selecionada.

Clique em add counters para adicionarmos os contadores. No nosso exemplo será usado apenas alguns contadores do objeto processador. Clique em Add.

Na guia Log Files, você configura o tamanho que terá o arquivo do contadores e qual o caminho aonde o mesmo será gravado.

Clique em configure.

Será aberta a janela aonde o arquivo deverá ser salvo. Por default o arquivo é sempre salvo no diretório C:. Aqui nós criaremos uma pasta no diretório F: e apontaremos o caminho do arquivo para esta pasta(CountersSQL).

Clique em OK.

Na guia Schedule, podemos agendar o horário que o contador inicie, intervalo e etc. Não usaremos isso, pois, iniciaremos o mesmo manualmente.

Clique em OK

Voltando para a guia General. Preencha o textbox com a credencial que irá executar o contador e clique em Set Password. Abrirá uma janela parecida com a do print abaixo:

Obs: Neste exemplo estou usando a conta do serviço do SQL Server, pois, a mesma possui direitos de Admins do dominio. Sempre use uma conta que tem permissão de gravação na pasta no qual será gravado o log. Clique em OK. Depois clique em OK na guia General.

Na opção de counters Log irá aparecer o seu contador e qual caminho você salvou.


Clique com o botão direito e inicie o contador, o mesmo mudará de cor, conforme print:

Iremos para a segunda parte do procedimento

Unificando as ferramentas

Para que esta tarefa seja concluída você deve ter um arquivo do profiler que estava executando na mesma hora em que o Counter Log foi iniciado. Um dos pré-requisitos para que os dados sejam “mesclados” é que o profiler deve ter sido criado com a coluna Start Time selecionada.

Vamos partir do pressuposto que o arquivo do profiler já havia sido coletado e o counter log também. E que os mesmos foram executados durante o mesmo periodo.

Abra o profiler e vá em Open/File/Trace File

Navegue até a pasta aonde está salvo o arquivo .trc do profiler do SQL Server.

Clique em Abrir.
Novamente no Menu File escolha a seguinte opção:

Ao clicar nesta opção, você deverá passar o caminho aonde esta salvo o counter log que foi criado.

Clique em abrir.

A janela com os contadores que você escolheu anteriormente irá aparecer todos desmarcados. Marque os check box apenas do tempo total de processamento.

Obs: Você pode escolher mais que um contador, neste exemplo apenas usaremos o tempo de processamento. Apenas um contador facilita a visualização e se for um problema de processamento em um devido horário, não tem porque adicionar contadores de disco.

Após você escolher o contador o resultado será apresentado, conforme abaixo:

Você pode analisar em qual horário foi o pico de processamento e o que estava rodando no exato momento no profiler.

Espero que seja uma dica útil para alguém que esta começando….