SlideShare uma empresa Scribd logo
1 de 25
Extended Events
Receitas de Sucesso para TroubleShooting
Dennes Torres
Speaker Bio
2
Arquiteto de Software
Diretor da Búfalo Informática
Instrutor
MCT, MCSE Data Platform, MCSE BI, MCSD Web Development
Líder do devSQL PASS Chapter
Rio de Janeiro
DevSQL
http://facebook.com/devSQL
Bufaloinfo
http://bufaloinfo.cloudapp.net
Dennes.Torres
@Dennes
https://br.linkedin.com/in/dennestorres
dennes@bufaloinfo.com.br
http://youtube.com/c/dennestorres
3
4
Essa Apresentação
O que você não verá
Conceitos básicos do Extended Events
Comparações com Profiler
Comparações com SQL Trace
Comparações de performance
http://youtube.com/c/dennestorres
O que você verá
Conjunto de receitas para troubleshooting usando Extended Events
4
5
Lista de Receitas
 Contenção no TempDB
 Page Splits
 Sort Spills
 Blocked Process
5
6
Contenção no TempDB
Problema
Latchs no TempDB prejudicam a performance do servidor
Identificar o problema
Processos simultâneos podem causar latchs em páginas de alocação: PFS, GAM e SGAM
Solucionar o problema
Criar múltiplos aquivos de dados para o TempDB
Latchs em páginas de dados exigem mudança dos batchs para serem resolvido
6
7
Modo de Preparo
Evento
Capturar o evento Latch_Suspend_End
Filtros
Filtrar pelo DatabaseID – TempDB é sempre 2
Filtrar pelo Duration maior que 0
Filtrar pelo mode – 2, 3 ou 4 (SH, UP, EX)
SELECT map_key, map_value
FROM sys.dm_xe_map_values
WHERE name = N'latch_mode'
Query
Tempero de XML tradicional
Realizar cálculo sobre o PageID para identificar o tipo de página (PFS, GAM, SGAM ou outras)
Case
When Page_ID = 1 Or Page_ID % 8088 = 0 Then 'Is PFS Page'
When Page_ID = 2 Or Page_ID % 511232 = 0 Then 'Is GAM Page'
When Page_ID = 3 Or (Page_ID - 1) % 511232 = 0 Then 'Is SGAM Page'
Else 'Is Not PFS, GAM, or SGAM page'
End
Agrupar totalizando a quantidade de latchs por tipo de latch e de página
7
8
Modo de Servir
Ative e desative em períodos não muito longos, selecionados conforme o
monitoramento e cheque o resultado
Siga as boas práticas para os arquivos de dados do TempDB
8
Demo
9
10
Page Splits
Problema
Page Splits are Evil !
Identificar o problema
Criação de novas páginas são registradas como page splits. É preciso separar os malignos dos inofensivos
A identificação é feita através do transaction log.
Os malignos causam a operação LOP_DELETE_SPLIT
Solucionar o problema
Aplicar Fill Factor sobre os índices ou alterar o planejamento de índices. Em casos de batch, apagar e re-criar
O resultado da identificação indica quais índices e bancos devem receber atenção
10
11
Modo de Preparo
Evento
Transaction_Log
Filtro
Operation=11 – LOP_DELETE_SPLIT
Opcionalmente/preferencialmente filtrar pelo databaseId
Query
Sem filtro por banco, pode-se identificar o banco no qual mais ocorrem page splits
Dentro de um banco específico, com filtro, pode-se fazer joins e identificar os índices e tabelas onde os
splits ocorrem
11
12
Modo de Servir
Ative e desative em períodos curtos, selecionados conforme o monitoramento e
cheque o resultado. Captura de log por um período longo causa indigestão.
Sempre que possível já filtre pelo banco de dados. Mas caso contrário, atenha-
se a períodos curtos.
12
Demo
13
14
Sort Spills no TempDB
Problema
Estatísticas desatualizadas fazem um SORT fazer spill para tabelas temporárias no tempdb
Identificar o problema
Através da query que causa o problema, identificar a tabela com estatísticas desatualizadas
Solucionar o problema
Atualizar estatísticas ou reindexar
14
15
Modo de Preparo
Evento
Utilizar o evento sqlserver.sort_warning
Actions
Sql_text e database_id são fundamentais
Query
Tempero XML tradicional
Resolução do database_id
15
16
Modo de Servir
Sirva sem moderação
16
Demo
17
18
Blocked Process
Problema
Identificar processos bloqueando uns aos outros e tornando o ambiente lento
Identificar o problema
Configurar o blocked process threshold a nível de servidor
Nunca configurar para menos de 5 segundos
Capturar informações sobre os processos bloqueados
Solucionar o problema
Ajustar o uso transacional e usar lock hints para evitar bloqueios entre os processos
O resultado da identificação do problema indica quais processos devem ser ajustados
18
19
Modo de Preparo
Evento
Blocked_process_report
Filtro
Nenhum
Query
Tempero típico de XML
19
20
Modo de Servir
Ajuste a configuração um valor acima de 5 segundos.
Se houver muita repetição no resultado, aumente o
tempo para pegar os processos com maior tempo de
bloqueio, resolva e comece a reduzir.
Não use continuamente.
20
Demo
21
Questions?
23
24
Links
http://facebook.com/devSQL
http://youtube.com/c/dennestorres
@Dennes
http://bufaloinfo.cloudapp.net
devsql-subscribe@yahoogrupos.com.br
dennes@bufaloinfo.com.br
https://www.simple-talk.com/sql/t-sql-programming/optimizing-batch-process-in-sql-server/
Thank You for Attending

Mais conteúdo relacionado

Semelhante a Receitas XE

TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoTechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoFabrício Catae
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisrafaelberlanda
 
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOMANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOLuciano Moreira
 
Os 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPOs 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPIssac Nolis Ohasi
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Taller Negócio Digitais
 
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoTreinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoBeatriz Makiyama Celestino
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeterEdlaine Zamora
 
ALM e Operações - Workshop - Como Diagnosticar um Incidente
ALM e Operações - Workshop - Como Diagnosticar um IncidenteALM e Operações - Workshop - Como Diagnosticar um Incidente
ALM e Operações - Workshop - Como Diagnosticar um IncidenteAlan Carlos
 
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADExtreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADCesar Romero
 
Monitoração - muito além do sistema operacional - WeOp 2014
Monitoração - muito além do sistema operacional - WeOp 2014Monitoração - muito além do sistema operacional - WeOp 2014
Monitoração - muito além do sistema operacional - WeOp 2014Marcus Vechiato
 
Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosEduardo Legatti
 
Forefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteForefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteUilson Souza
 
Webcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceWebcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceAlex Barbosa Coqueiro
 

Semelhante a Receitas XE (20)

TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoTechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portais
 
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOMANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
 
Os 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPOs 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAP
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
 
Oracleplsql
OracleplsqlOracleplsql
Oracleplsql
 
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoTreinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeter
 
Processos
ProcessosProcessos
Processos
 
ALM e Operações - Workshop - Como Diagnosticar um Incidente
ALM e Operações - Workshop - Como Diagnosticar um IncidenteALM e Operações - Workshop - Como Diagnosticar um Incidente
ALM e Operações - Workshop - Como Diagnosticar um Incidente
 
TechEd_OFC305
TechEd_OFC305TechEd_OFC305
TechEd_OFC305
 
Pgbr2013
Pgbr2013Pgbr2013
Pgbr2013
 
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADExtreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
 
Monitoração - muito além do sistema operacional - WeOp 2014
Monitoração - muito além do sistema operacional - WeOp 2014Monitoração - muito além do sistema operacional - WeOp 2014
Monitoração - muito além do sistema operacional - WeOp 2014
 
DB2 Express-C
DB2 Express-CDB2 Express-C
DB2 Express-C
 
Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - Nagios
 
Forefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteForefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamente
 
Magento: Mitos vs Vantagens
Magento: Mitos vs VantagensMagento: Mitos vs Vantagens
Magento: Mitos vs Vantagens
 
Aula3so
Aula3soAula3so
Aula3so
 
Webcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceWebcast WebSphere Portal Performance
Webcast WebSphere Portal Performance
 

Mais de Dennes Torres

Integrando big data ao oltp com polybase
Integrando big data ao oltp com polybaseIntegrando big data ao oltp com polybase
Integrando big data ao oltp com polybaseDennes Torres
 
Ecosistema de data warehouse com ferramentas microsoft
Ecosistema de data warehouse com ferramentas microsoftEcosistema de data warehouse com ferramentas microsoft
Ecosistema de data warehouse com ferramentas microsoftDennes Torres
 
Profissões e atividades do mercado de banco de
Profissões e atividades do mercado de banco deProfissões e atividades do mercado de banco de
Profissões e atividades do mercado de banco deDennes Torres
 
Técnicas de orm com o framework
Técnicas de orm com o frameworkTécnicas de orm com o framework
Técnicas de orm com o frameworkDennes Torres
 
Desenvolvimento para windows phone
Desenvolvimento para windows phoneDesenvolvimento para windows phone
Desenvolvimento para windows phoneDennes Torres
 
Desenvolvimento web com tecnologias microsoft
Desenvolvimento web com tecnologias microsoftDesenvolvimento web com tecnologias microsoft
Desenvolvimento web com tecnologias microsoftDennes Torres
 
Desenvolvendo em camadas com silverlight
Desenvolvendo em camadas com silverlightDesenvolvendo em camadas com silverlight
Desenvolvendo em camadas com silverlightDennes Torres
 

Mais de Dennes Torres (7)

Integrando big data ao oltp com polybase
Integrando big data ao oltp com polybaseIntegrando big data ao oltp com polybase
Integrando big data ao oltp com polybase
 
Ecosistema de data warehouse com ferramentas microsoft
Ecosistema de data warehouse com ferramentas microsoftEcosistema de data warehouse com ferramentas microsoft
Ecosistema de data warehouse com ferramentas microsoft
 
Profissões e atividades do mercado de banco de
Profissões e atividades do mercado de banco deProfissões e atividades do mercado de banco de
Profissões e atividades do mercado de banco de
 
Técnicas de orm com o framework
Técnicas de orm com o frameworkTécnicas de orm com o framework
Técnicas de orm com o framework
 
Desenvolvimento para windows phone
Desenvolvimento para windows phoneDesenvolvimento para windows phone
Desenvolvimento para windows phone
 
Desenvolvimento web com tecnologias microsoft
Desenvolvimento web com tecnologias microsoftDesenvolvimento web com tecnologias microsoft
Desenvolvimento web com tecnologias microsoft
 
Desenvolvendo em camadas com silverlight
Desenvolvendo em camadas com silverlightDesenvolvendo em camadas com silverlight
Desenvolvendo em camadas com silverlight
 

Receitas XE

  • 1. Extended Events Receitas de Sucesso para TroubleShooting Dennes Torres
  • 2. Speaker Bio 2 Arquiteto de Software Diretor da Búfalo Informática Instrutor MCT, MCSE Data Platform, MCSE BI, MCSD Web Development Líder do devSQL PASS Chapter Rio de Janeiro DevSQL http://facebook.com/devSQL Bufaloinfo http://bufaloinfo.cloudapp.net Dennes.Torres @Dennes https://br.linkedin.com/in/dennestorres dennes@bufaloinfo.com.br http://youtube.com/c/dennestorres
  • 3. 3
  • 4. 4 Essa Apresentação O que você não verá Conceitos básicos do Extended Events Comparações com Profiler Comparações com SQL Trace Comparações de performance http://youtube.com/c/dennestorres O que você verá Conjunto de receitas para troubleshooting usando Extended Events 4
  • 5. 5 Lista de Receitas  Contenção no TempDB  Page Splits  Sort Spills  Blocked Process 5
  • 6. 6 Contenção no TempDB Problema Latchs no TempDB prejudicam a performance do servidor Identificar o problema Processos simultâneos podem causar latchs em páginas de alocação: PFS, GAM e SGAM Solucionar o problema Criar múltiplos aquivos de dados para o TempDB Latchs em páginas de dados exigem mudança dos batchs para serem resolvido 6
  • 7. 7 Modo de Preparo Evento Capturar o evento Latch_Suspend_End Filtros Filtrar pelo DatabaseID – TempDB é sempre 2 Filtrar pelo Duration maior que 0 Filtrar pelo mode – 2, 3 ou 4 (SH, UP, EX) SELECT map_key, map_value FROM sys.dm_xe_map_values WHERE name = N'latch_mode' Query Tempero de XML tradicional Realizar cálculo sobre o PageID para identificar o tipo de página (PFS, GAM, SGAM ou outras) Case When Page_ID = 1 Or Page_ID % 8088 = 0 Then 'Is PFS Page' When Page_ID = 2 Or Page_ID % 511232 = 0 Then 'Is GAM Page' When Page_ID = 3 Or (Page_ID - 1) % 511232 = 0 Then 'Is SGAM Page' Else 'Is Not PFS, GAM, or SGAM page' End Agrupar totalizando a quantidade de latchs por tipo de latch e de página 7
  • 8. 8 Modo de Servir Ative e desative em períodos não muito longos, selecionados conforme o monitoramento e cheque o resultado Siga as boas práticas para os arquivos de dados do TempDB 8
  • 10. 10 Page Splits Problema Page Splits are Evil ! Identificar o problema Criação de novas páginas são registradas como page splits. É preciso separar os malignos dos inofensivos A identificação é feita através do transaction log. Os malignos causam a operação LOP_DELETE_SPLIT Solucionar o problema Aplicar Fill Factor sobre os índices ou alterar o planejamento de índices. Em casos de batch, apagar e re-criar O resultado da identificação indica quais índices e bancos devem receber atenção 10
  • 11. 11 Modo de Preparo Evento Transaction_Log Filtro Operation=11 – LOP_DELETE_SPLIT Opcionalmente/preferencialmente filtrar pelo databaseId Query Sem filtro por banco, pode-se identificar o banco no qual mais ocorrem page splits Dentro de um banco específico, com filtro, pode-se fazer joins e identificar os índices e tabelas onde os splits ocorrem 11
  • 12. 12 Modo de Servir Ative e desative em períodos curtos, selecionados conforme o monitoramento e cheque o resultado. Captura de log por um período longo causa indigestão. Sempre que possível já filtre pelo banco de dados. Mas caso contrário, atenha- se a períodos curtos. 12
  • 14. 14 Sort Spills no TempDB Problema Estatísticas desatualizadas fazem um SORT fazer spill para tabelas temporárias no tempdb Identificar o problema Através da query que causa o problema, identificar a tabela com estatísticas desatualizadas Solucionar o problema Atualizar estatísticas ou reindexar 14
  • 15. 15 Modo de Preparo Evento Utilizar o evento sqlserver.sort_warning Actions Sql_text e database_id são fundamentais Query Tempero XML tradicional Resolução do database_id 15
  • 16. 16 Modo de Servir Sirva sem moderação 16
  • 18. 18 Blocked Process Problema Identificar processos bloqueando uns aos outros e tornando o ambiente lento Identificar o problema Configurar o blocked process threshold a nível de servidor Nunca configurar para menos de 5 segundos Capturar informações sobre os processos bloqueados Solucionar o problema Ajustar o uso transacional e usar lock hints para evitar bloqueios entre os processos O resultado da identificação do problema indica quais processos devem ser ajustados 18
  • 20. 20 Modo de Servir Ajuste a configuração um valor acima de 5 segundos. Se houver muita repetição no resultado, aumente o tempo para pegar os processos com maior tempo de bloqueio, resolva e comece a reduzir. Não use continuamente. 20
  • 23. 23
  • 25. Thank You for Attending