Profiler. Criando uma trace para análise de performance de um servidor SQL Server

Documentos relacionados
Banco de Dados Administração. José Antônio da Cunha CEFET RN 12/04/2005

SQL Server Management Studio - Backup e Restauração de dados

Backup. José Antônio da Cunha CEFET-RN

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

Checking SQL Server or MSDE Version and Service Pack Level

Laboratório - Uso do Wireshark para examinar uma captura UDP DNS

SQL Server Integration Services

JOHN MAYER - PARADISE VALLEY

Rápida revisão do Modelo Relacional

Tutorial de Instalação Integratto Contábil SQL. Integratto Contábil SQL

Manual Recurso Valores Default. FullCopyConvert Data

Laboratório - Uso do Wireshark para observar o handshake triplo do TCP

Banco de Dados. Aula 03. Prof. Diemesleno Souza Carvalho

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

Lojamundi Tecnologia Sem Limites br

STD SERVIÇO DE BACKUP EM NUVEM

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA. Full Text Searching

MANUAL DE UTILIZAÇÃO COLETOR OPTIMUS METROLOGIC SP5500

PROJURIS CAPTURA VANTAGENS DA UTILIZAÇÃO CONCEITOS. Captcha

Stored Procedures e Triggers

Configuração de Conta de no Outlook 2013 e Backup de Segurança dos s

2 Instalando e configurando o ambiente de desenvolvimento do Microsoft SQL Server

Cisco CallManager: Manualmente suprimindo dos registros dos destalhes da chamada (CDR) sem a ferramenta de relatório administrativo (ART)

Visual Studio+SQL Server Express LocalDB ANTONIO LUIS

Laboratório Usando Wireshark para Examinar Quadros Ethernet

Manual do Usuário. Sistema Cobrança de Títulos para Cobrança em Carteira ou Boleto Bancário


Criando um site de Notícias - com Administração de Dados

RATIONAL ROSE FUNÇÕES BÁSICAS CRIANDO E DETALHANDO UM DIAGRAMA DE CASO DE USO OPÇÕES DE FERRAMENTAS SUPORTE ESCOLHENDO TIPO DE DIAGRAMA

Ferramenta para geração de relatórios e gráficos, vinculados ao Cybersul Solution3. Relatórios personalizados. Gráficos personalizados

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 09a- Acessando os dados através JDBC

Aula Prática de Redes Industriais Wireshark

Administração de Banco de Dados. José Antônio da Cunha CEFET - RN

TESTE A/B AKNA TREINAMENTOS AKTR AKNATR. Todos os direitos reservados. Modulo CC 1/12

Após clicar no ícone destacado, irá abrir as fotos em cadastro do respectivo cliente

Pesquise defeitos a falha da validação da capacidade do gateway da rechamada da cortesia CVP (CCB)

NOTA: Neste tutorial foi utilizado o Visual Studio 2010 para criar o Projeto Web no qual iremos realizar os passos abaixo.

Configurações do Servidor Escola

Tutorial SQL Server 2014 Express

Apresentação. Prezado Cliente, A Newness Broadcast agradece por você se tornar um usuário do N-Map Server.

Manual Apollo 3 Camadas

Em nosso exemplo, o banco de dados XE está trabalhando no modo NOARCHIVELOG, e para verificar isso, basta executar as seguintes tarefas:

Nota de Aplicação. Relatório em HTML no Vijeo Citect 1.0. Suporte Técnico Brasil. Versão:

PTR 2580 / PTR5919 Sistemas Inteligentes de Transportes (ITS)

Tutorial do E3 para Iniciantes Capítulo 15 Consultas

Crystal Reports - Gerando seus relatórios.

Laboratório 14 - Usando o SSIS Import e Export Wizard

Criação de sumário no InDesign CS3

Envio de SMS pelo Emed

Configurações para emissão de Nota Fiscal de Serviços de Curitiba / PR.

Programação em SGDB s

MANUAL DE UTILIZAÇÃO COLETOR OPTIMUS METROLOGIC SP5500

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

Spectrum Miner. Versão 8.0. Guia de administração para a integração do Portrait Dialogue

a situação mais desfavorável devido a pressão, p existirem. OBS: Em alguns projetos não é necessário efetuar neste caso o programa não apresentará na

Como configurar o software Cobian Backup?

Criando uma página de Recados com acesso restrito ( Facebook )

Arquivos de configuração alternativos e da restauração

Manual de instalação do software CSIBackup Versão 1.0

f. Exemplo: verificar condição de aprovação de alunos

GUIA RÁPIDO. MDIForms. Sintel Informática Ltda. Rua Vergueiro, nº º andar Vila Mariana, São Paulo - SP CEP:

Configurações para emissão de Nota Fiscal de Serviços de Salvador / BA.

Configuração de Conta de no Outlook 2003 / 2007 e Backup de Segurança dos s

SQL Server Desenvolvedor

FERRAMENTAS DE CONSULTA À EXECUÇÃO DO ORÇAMENTO

Faça Fácil RTIP - Consulta Relacional

MANUAL DE PUBLICAÇÃO NO PORTAL CAMPUS MATÃO

MANUAL DO USUÁRIO Cadastros Básicos

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

Pesquisas em Tabelas

Guia do Usuário do Rescue Lens

Manual do Usuário Brother Meter Read Tool

Como pesquisar casos na Central de atendimento ao cliente Cisco e/ou suas afiliadas. Todos os direitos reservados. 1

Tarefa Orientada 17 Scripts

Um pequeno guia do usuário do SiscoloDW

Manual de instalação do SQL 2012

Guia do f12 F12. Developer Tools. Leonardo Tegon

Procedimentos para Atualização Sisloc

Tutorial para registro TOEFL ibt. Sumário 1/12. Passo 1 Iniciando o processo Passo 2 Criando seu perfil Passo 3 Acessando seu perfil...

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Tutorial Mão na Massa sobre Elastic Load Balancer

Roteiro do 3º Experimento: Programação do CLP Siemens S7-1200

Análise de Tradução MS GSS

Manual Venda de Produtos Gestor Loja - Versão 5.8 atualização

Submissão de artigo no ScholarOne da revista SOPERJ

Manual de Instalação

Configurar Thin Client X1 e X1W

Sistema SGPA-IFSP. Manual de Instalação

O Portal Service Desk está disponível no AllianzNet. Para acessá-lo, clique no banner abaixo do menu Minha Intrallianz, opção Portal Service Desk.

Criar ou excluir um relatório de tabela dinâmica ou de gráfico

MANUAL DE INSTALAÇÃO SAMI HOTELEIRO. REV B

Começando com o AWS IoT

Bases de Dados. Lab 1: Introdução ao ambiente

Sankhya Web Connection. Versão: 02 Criado em: 28/03/2017

Acesso a Dados VS.NET Smart Client (Windows Application)

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Transcrição:

Profiler Criando uma trace para análise de performance de um servidor SQL Server 1. Análise preliminar: identificando stored procedures e batchs com baixa performance. Demora excessiva para conclusão de consultas, deadlocks em demasia e problemas com timeout nas aplicações esse é o quadro de um servidor com sérios problemas de performance. Nosso objetivo inicial será efetuar um levantamento para determinar quais são os processos mais demorados, cronometrando a execução de batchs e stored ptrocedures nesse servidor. Passos para realizar esta tarefa: 1) inicie o Profiler. 2) Escolha New Trace na opção File da barra de ferramentas. 3) Na tela de propriedade da Trace, confirme a seleção do template Standard na guia General. (Esse template captura a execução de batchs(tsql\sql:batch Completed e Stored Procedures\RPC:Completed). 4) Os eventos Security Audit e Sessions não são necessários para essa análise, podendo ser removidos. As colunas e ordem de apresentação dos eventos do template Standard sofrerão duas alterações: na guia Data Columns ordenaremos as linhas capturadas segundo seu tempo de execução e eliminaremos algumas colunas desnecessárias nesse momento. 5) para ordenar as linhas do Profiler segundo a duração do comando executado, selecione Duration e clique em Up até que essa coluna fique lo abaixo de Groups. 6) As colunas removidas foram: NTUserName, Loginname, CPU, Reads, Writes e ClientProcessId. Até esse momento, a trace irá capturar todos os batchs e sp s executados nesse servidor. Seria interessante ligar um filtro de tempo de modo que só fossem capturados os processos com tempo de execução acima de um determinado limite. 7) Para conseguir esse efeito, vamos ligar o filtro Duartion na guia Filters, trabalhando com um limite de 2000 milisegundos.

8) Ara inicie a trace clicando <RUN>. 9) Para simular uma atividade no SQGBD, abra uma sessão no Query Analyzer, digite as linhas da Listagem 1 e confirme o resultado na tela do Profiler. use Northwind create proc stp_teste as select top1 * from orders select top 1 * from [order details] waitfor delay '00:00:03' select top 1 * from customers exec stp_teste select count(*) from [order details] select top 10 * from orders Listagem 1 2. Análise específica: identificando comandos T-SQL com baixa performance. A trace gerada anteriormente forneceu a relação de batchs e sp s que estão apresentando tempo de execução superior a 2 segundos. No caso da stored procedute stp_teste, temos que identificar qual comando T-SQL está sendo responsável pela lentidão. Para isto, vamos criar uma trace para analisar somente a sp stp_teste. 1) O ponto de partida é identificar o id do objeto que queremos selecionar. No Query Analyzer, digite: Select object_id ( stp_teste ) 1637580872 2) Crie uma trace, selecionando os eventos SP:Completed e SP:StmtCompleted. SP:Completed irá gerar uma linha contendo a chamada para a procedure.

SP:StmtCompleted irá gerar uma linha para cada comando T-SQL executado dentro da sp. 3) Na guia Data Columns, selecione o mesmo evento analisado anteriormente Duration. 4) Na guia Filters, siga até ObjectId e informe o id da procedure stp_teste obtida anteriormente. Veja a Figura 1. Figura 1: Ligando o filtro ObjectId para filtrar os comandos T-SQL executados na procedure stp_teste. 5) Rode a trace <RUN> 6) Execute a procedure stp_teste. Veja o resultado na tela profiler (Figura 2). Figura 2: Visualização dos comandos executados na procedure stp_teste.

3) Rastreando processos envolvidos em Deadlocks Deadlock é uma causa freqüente de má performance, pois requer que a conexão escolhida como vítima e cuja execução de comandos foi abortada- envie novamente o comando para execução. O profiler possui dois eventos que nos ajudam a rastrear deadlocks: Lock:Deadlock informa a ocorrência do erro#1205 associado ao deadlock. Lock:DeadlockChain irá apontar o spid das conexões envolvidas no deadlock. 4) Evitando CacheMiss Quando acionamos uma sp, seu plano de execução fica em memória. Nesse plano são armazenadas instruções de como a query deverá ser executada: que índice utilizar, o tipo de join selecionado, etc. antes de criar um plano de execução novo, o otimizador faz uma busca na área de cachê destinada a procedures procurando por um plano préexistente. Se a busca for bem sucedida, o plano será aproveitado e a sp será executada de acordo com ele. Existem algumas situações onde o otimizador é obrigado a fazer várias tentativas até encontrar o códi pré-compilado. Cada uma dessas tentativas mal sucedidas dispara um evento conhecido por SP:CacheMiss, que pode ser evitado seguindo-se as dicas abaixo: Não utilize o prefixo sp_ para nomear suas sp s. Quando o otimizador encontra uma procedure com o prefixo sp, sua execução é desencadeada no banco de dados master. Como a sp não existe nesse banco de dados, seu plano de execução não é encontrado na primeira tentativa, disparando um evento SP:cacheMiss. O processo de execução prossegue procurando a sp no banco de dados local, onde o códi compilado é encontrado e a sp executada. Execute stored procedure qualificando seu dono (owner). Lembre-se que você pode possuir objetos com o mesmo nome, mas com owner diferentes. Troque exec stp_teste por exec dbo.stp_teste. Principais comandos utilizados na manipulação de traces: 1) Para gerar o script de uma trace: na barra de ferramentas do profiler, selecione File...Save As SQL Script. 2) Verificando as traces ativas no servidor: Select * from ::fn_trace_getinfo(default)

3) Pasa parar uma trace: Sp_trace_setstatus 1,0 <<0>: parâmetro para parar a trace. 4) Para iniciar (ou restaurar) uma trace: Sp_trace_setstatus 1,1 <1>: parâmetro para iniciar a trace. 5) Para encerrar uma trace, excluindo sua definição da memória do servidor: St_trace_setstatus 1,2 <2>: parâmetro para encerrar a trace. PS: é necessário parar antes. Nota: Funções internas no SQL Server que possuem o prefixo fn_ precisam ser chamadas com a adição de :: (duas vezes o sinal de pontuação dois pontos).