TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
-
Upload
fabricio-catae -
Category
Technology
-
view
145 -
download
0
Transcript of TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
![Page 1: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/1.jpg)
Fabio GentilePremier Field EngineerMicrosoft
Fabricio CataePremier Field EngineerMicrosoft
SQL Server com Foco em Diagnóstico de Desempenho
CÓDIGO DA SESSÃO: SUP-403
![Page 2: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/2.jpg)
4
Premier Field Engineering
Premier Field
Engineering
Serviços Proativos
ServiçosReativos
WorkshopPlus
Health Checks &
Risk Assessment
Programs
Situações Críticas
![Page 3: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/3.jpg)
5
Agenda
100% CPUWaits Statistics
![Page 4: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/4.jpg)
6
Definindo Performance
Performance (Desempenho)Tempo de Resposta ao Usuário
Sintomas de Baixo DesempenhoAlta Utilização de Recursos
![Page 5: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/5.jpg)
7
Cenário: Alto Consumo de CPU
Utilizar o Task ManagerIdentificar o processoUsar DMV para identificar a causa do problema
Custo em CPUQuery rodandoPlano de execução
![Page 6: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/6.jpg)
8
Alto Consumo de CPU
![Page 7: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/7.jpg)
9
Metodologia: Alto consumo de CPU
Confirmar alto consumo de CPUTask ManagerPerformance Monitor
Rodar a query sys.dm_exec_requests
Ordenar o resultado de acordo com cpu_time
Consultar o SQL Text usando o (sql) handle
Consultar o Query Plan usando o (plan) handle
![Page 8: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/8.jpg)
10
Desafio: Como Otimizar?
set @str = CAST(@i as CHAR(10))
insert tbInfo (info) values ( @str )
![Page 9: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/9.jpg)
11
Redefinindo Performance
Performance (Desempenho)Tempo de Resposta ao UsuárioTamanho da Fila de ProcessamentoUtilização de Recursos
Sintomas de Baixo DesempenhoAlta Utilização de Recursos
Presença constante de 100% CPUAlto consumo de MemóriaBloqueios e Locks entre Queries
![Page 10: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/10.jpg)
12
Análise do Consumo de CPU
Baseia-se no fato de que a THREAD possui dois estados:
RodandoSuspensa (Em Espera) CPU
CPUWait
![Page 11: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/11.jpg)
13
Metodologia: ?
Recursos
CPUDiscoRedeMemoria
CPU
CPUWait
![Page 12: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/12.jpg)
14
Wait Statistics O que são Wait Statistics?
Sempre que uma query inicia a espera por algum recurso (Disco, Locks, Rede), o SQL Server registra o tipo e a duração desta espera
Estas informações sobre esperas são retidas e permitem determinar porque a execução das queries é mais lenta do que o esperado
![Page 13: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/13.jpg)
15
Wait Statistics Por que usar Wait Statistics?
Abordagem inicial antes de aprofundar a análise de performance usando outras ferramentas
Permite encontrar gargalos de performance que não são óbvios e evita tentativas de eliminação de falsos gargalos de performance
Permite identificar o maior retorno para os esforços de ajuste de performance
![Page 14: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/14.jpg)
16
Wait Statistics Onde encontrar Wait Statistics?
SQL Server DMV:sys.dm_os_wait_stats
Wait Statistics são acumuladas desde o último restart da instância do SQL Server, ou do último reset:
DBCC SQLPERF (‘sys.dm_os_wait_stats’, CLEAR)
![Page 15: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/15.jpg)
17
Wait Statistics sys.dm_os_wait_stats
wait_type:Tipo da espera
waiting_tasks_count:Número de esperas deste tipo
wait_time_ms: Tempo total de espera para este tipo em milissegundos
max_wait_time_ms: Tempo máximo de espera para este tipo
signal_wait_time: Diferença entre o tempo em que a espera teminou e o início da execução
![Page 16: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/16.jpg)
18
Wait Statistics sys.dm_os_wait_stats
![Page 17: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/17.jpg)
19
Wait Statistics Interpretando Wait Types
Nem todos os wait types indicam problemas ou exigem ações para serem corrigidos (como esperas associadas a tarefas em background)
Concentre a análise em esperas por recursos que podem indicar gargalos:
DiscoCPUMemóriaLockingRede
![Page 18: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/18.jpg)
20
Tarefas em Background e Esperas
Determinadas esperas (Wait Types) estão relacionadas com tarefas que rodam em background
Exemplo de tarefas de sistema:FT_IFTS_SCHEDULER_IDLE_WAITREQUEST_FOR_DEADLOCK_SEARCHSQLTRACE_BUFFER_FLUSHLAZYWRITER_SLEEPXE_TIMER_EVENTCHECKPOINT_QUEUEBROKER_TO_FLUSHLOGMGR_QUEUE
![Page 19: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/19.jpg)
21
Inserção de DadosProcInsertInfo
![Page 20: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/20.jpg)
22
Cenário: Latência na Gravação do Log
Quando a thread espera por uma escrita no arquivo de LOG, ela fica no modo de espera
Wait type: WRITELOG
Essa espera pode ser observada Online nas DMVsys.dm_exec_requestssys.dm_os_taskssys.dm_os_waiting_tasks
![Page 21: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/21.jpg)
23
WRITELOG
Gravação do LOG: 1msEscrita sequencial
Commit Transaction = 1 escrita em LOG
Limite de Transações/sec
![Page 22: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/22.jpg)
24
Recomendação
Garantir o tempo de acesso ao disco adequadoIdeal: < 1 ms (cache)Bom: < 5 ms (normal)...Desastre Total: > 100 ms
Agrupar as transações excessivamente curtas dentro de um contexto transacional
BEGIN TRANSACTION / COMMIT
![Page 23: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/23.jpg)
25
Otimizando: Inserção de Dados
![Page 24: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/24.jpg)
26
Cenário: Latência no Acesso aos Discos
Ocorre quando uma thread aguarda por uma requisição de I/O num arquivo de dados
Wait type: PAGEIOLATCH_*
Esta espera pode ser observada nas DMVs:sys.dm_os_wait_statssys.dm_exec_requestssys.dm_os_tasks / sys.dm_os_waiting_taskssys.dm_io_pending_io_requests
![Page 25: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/25.jpg)
27
Monitoração de I/O pendentes
sys.dm_io_pending_io_requests
![Page 26: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/26.jpg)
28
Latência no Acesso aos Discos
![Page 27: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/27.jpg)
29
RecomendaçãoGarantir tempos de acesso adequados aos discos (Physical Disk, Avg. Disk sec/Read e Avg. Disk sec/Write)
Ideal: < 10 msBom: < 20 ms...Ruim: > 100 ms
Diminuir a quantidade de leituras lógicas, melhorando a estratégia de indexação
Database Engine Tuning Advisor (DTA)sys.dm_db_missing_index_*Plano de execução: Missing Index Details
![Page 28: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/28.jpg)
30
Outros Wait Types
![Page 29: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/29.jpg)
31
Breve Resumo
Wait Type Possível significadoPAGELATCH 2:*:* Contenção no TEMPDB em memóriaPAGELATCH dbid:*:* Hot-spot em memória (page-split)PAGEIOLATCH Leitura excessiva de discoWRITELOG Escrita em disco de logNETWORKIO Esperando recebimento de pacotes do clienteSOS_SCHEDULER_YIELD Alto consumo de CPURESOURCE_SEMAPHORE Esperando por memória para WorkspaceLCK_M_* Bloqueios
![Page 30: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/30.jpg)
32
Problema de Travamento
![Page 31: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/31.jpg)
33
Cenário: Locks
Tipos de LockLCK_M_X = Exclusive (Escrita)LCK_M_S = Shared (Leitura)LCK_M_U = UpdateLCK_M_IX = Intent-ExclusiveLCK_M_IS = Intent-Shared
Diferentes RecursosTabelaPáginaLinha
IdentificadorLCK_M_X sobre o recurso 5:1234567 (dbid=5, objid=1234567)
![Page 32: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/32.jpg)
34
Matriz de Compatiblidade (COMPLETA)
Conflitos = (C)
![Page 33: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/33.jpg)
35
Compatibilidade de Lock
S = Shared/Leitura ( múltiplas leituras )X = Exclusivo ( bloqueia TODOS )
Intent Lock (IS, IX) – Compatíveis entre si
![Page 34: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/34.jpg)
36
Hierarquia de Locks
Escrita de Linha
TABLE LOCK IXPAGE LOCK IX
ROW LOCK X
Escrita de Linha
TABLE LOCK IXPAGE LOCK IX
ROW LOCK X
![Page 35: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/35.jpg)
37
Hierarquia de Locks (2)
Escrita de Linha
TABLE LOCK IXPAGE LOCK IX
ROW LOCK X
Leitura da Tabela Inteira
TABLE LOCK SPAGE LOCK -
ROW LOCK -
![Page 36: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/36.jpg)
38
Hierarquia de Locks (3)
Escrita de Linha
TABLE LOCK IXPAGE LOCK IX
ROW LOCK X
Leitura de Linha
TABLE LOCK ISPAGE LOCK IS
ROW LOCK S
![Page 37: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/37.jpg)
39
Recomendação
Matriz de CompatibilidadeRange Locks (LCK_M_R*)
Transação em Serializable
Utilize o NOLOCK se necessárioMelhor alternativa: Read Committed Snapshot
SQL tem lock de linha? (ROWLOCK)Como usar um lock de linha se a query faz TABLE SCAN?
![Page 38: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/38.jpg)
40
Referências – Wait Stats
SQL Server 2005 Waits and Queues:http://technet.microsoft.com/en-us/library/cc966413.aspx
Troubleshooting Performance Problems in SQL Server 2005http://technet.microsoft.com/en-us/library/cc966540.aspx
Troubleshooting Performance Problems in SQL Server 2008http://technet.microsoft.com/en-us/library/dd672789(SQL.100).aspx
Description of the waittype and lastwaittype columns in the master.dbo.sysprocesses table in SQL Server 2000 and SQL Server 2005
http://support.microsoft.com/kb/822101The SQL Server Wait Type Repository
http://blogs.msdn.com/b/psssql/archive/2009/11/03/the-sql-server-wait-type-repository.aspx
![Page 39: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/39.jpg)
41
![Page 40: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/40.jpg)
42
Contatos
Fabricio [email protected]
Fabio [email protected]
Blog / Twitterhttp://blogs.msdn.com/fcataeTwitter: @fcatae
![Page 41: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/41.jpg)
© 2008 Microsoft Corporation. Todos os direitos reservados. Microsoft, Windows, Windows Vista e outros nomes de produtos são ou podem ser marcas registradas e/ou marcas comerciais nos EUA e/ou outros países.Este documento é meramente informativo e representa a visão atual da Microsoft Corporation a partir da data desta apresentação. Como a Microsoft deve atender a condições de mercado em constante alteração, este
documento não deve ser interpretado como um compromisso por parte da Microsoft, e a Microsoft não pode garantir a precisão de qualquer informação fornecida após a data desta apresentação. A MICROSOFT NÃO DÁ QUALQUER GARANTIA, SEJA ELA EXPRESSA, IMPLÍCITA OU ESTATUTÁRIA, REFERENTE ÀS INFORMAÇÕES DESTA APRESENTAÇÃO.
![Page 42: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/42.jpg)
Por favor preencha a avaliação
![Page 43: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/43.jpg)
45
Query Plan
![Page 44: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/44.jpg)
46
Monitorando Deadlock
Habilitar o Trace Flag 1222 no Startup
Utilize o Profiler para obter uma versão gráfica
![Page 45: TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho](https://reader036.fdocumentos.tips/reader036/viewer/2022062522/58ab78351a28abb54e8b6915/html5/thumbnails/45.jpg)
47
Evite Table Scan