Monitore o consumo de recursos do banco de dados

Todo mundo gosta de otimização de performance, por isso, inventei 9 regras para ajudar as pessoas a melhorarem os conhecimentos sobre o assunto. Gostaria de começar falando sobre a Regra 1, que fala sobre monitorar o consumo de recursos. Logo que escrevi essa regra, pensei em duas coisas: As pessoas ficarão curiosas para saber por…

6

Arquitetura do SQL Server

Finalmente publicado o primeiro vídeo da série Fundamentos de Banco de Dados. https://channel9.msdn.com/Series/SQL-Fundamentos/Arquitetura-do-SQL-Server Nesse episódio vamos falar sobre as grandes famílias de componentes. Para quem já viu minhas palestras, deve ter notado que sempre comento sobre a separação entre Relational Engine (Linguagem, compilação e execução) e Storage Engine. Além disso, temos a família de Protocols…

9

Vídeos de Fundamentos Banco de Dados

Decidi começar um experimento diferente, que vai além do blog, que é uma série de vídeos explicativos sobre o funcionamento do SQL Server. Há muito tempo tenho pensado nessa ideia e finalmente se tornou realidade. A série estréia no Channel 9.   https://channel9.msdn.com/Series/SQL-Fundamentos Ainda não planejei o número exato de vídeos. Gostaria de fechar em…

5

Monitor SQL

Antes que me esqueça, quero publicar o script que usamos no dia a dia para analisar os servidores SQL. O objetivo é coletar o MÁXIMO de informação e de forma não-invasiva. Tenho usado com muito sucesso nesses últimos 2 anos e nunca tive problemas (exceto pelo tamanho do arquivo). IF OBJECT_ID(‘tempdb..#spBlockerPfe’) IS NOT NULL DROP…

4

Configurando o Maximize Throughput for Network Applications

Comecei a reler os artigos que escrevi no passado e encontrei um falando sobre Working Set. Quando escrevi o post, pensava no mistério do porque o Task Manager reporta a quantidade incorreta de memória usada pelo SQL Server. A explicação está em um documento do MSDN que comenta sobre a composição do Working Set. Toda…

1

Análise: sysprocesses – Identificando Alto Consumo de CPU

O blocker script (versão modificada) é utilizado para coletar informações que auxiliam no diagnóstico de performance SQL Server 2000. Nesse breve artigo, será destacado o trecho que auxilia no diagnóstico de problema de CPU. Links Relacionados Blocker Script original: sp_blocker_pss80 Versão SQL2000: Blocker Modificado Coleta de dados no SQL 2008–Script 1  Coleta de dados no…


A significant part of sql server process memory has been paged out

Ouch! Você sabe o que essa mensagem significa? 2010-10-31 12:00:00.00 spid1s      A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 4620, committed (KB): 1652332, memory utilization: 0%. Pensando na data, dia 31/Out, eu seriamente pensaria em Helloween! Porque essa…

4

Monitorando Alta CPU através da RING BUFFER

Alto consumo de CPU, como monitorar? Recentemente, li um comentário interessante postado pelo Fernando Garcia no post Como Monitorar com Ring Buffer. Ele mencionou o uso do RING BUFFER para diagnosticar alto consumo de CPU. Isso é algo fantástico para um DBA que não tem acesso remoto ao servidor, ou seja, não pode abrir o…

2

Erro de Timeout em Query SQL

Hoje o pessoal estava reclamando sobre erros de timeout no SQL Server. Qual seria uma forma eficiente de gerar um trace da aplicação/SQL e identificar quem está causando problemas? Uma forma é gerar um Trace com essas informações e abrir usando a query abaixo. SELECT DatabaseName, TextData, StartTime, EndTime, Duration/1000 as ‘Duration (ms)’, Reads, Writes,…

7

Problemas com NOLOCK (SQL Server)

Estava comentando sobre a recomendação indiscriminada do uso do NOLOCK, mas até que ponto isso é bom ou ruim. Se a vantagem em performance é conhecida, quais seriam as desvantagens? Links relacionados Como usar SELECT WITH NOLOCK para melhorar a Performance? Qual a sintaxe correta: NOLOCK ou WITH (NOLOCK)? NOLOCK e INSERT/UPDATE/DELETE Problemas com NOLOCK…

3

Coleta de dados no SQL 2008–Script 3

A terceira parte do script de coleta de dados para diagnóstico de performance está apresentado nesse artigo. A segunda parte era o coração do script e roda em intervalos periódicos de 5 a 15 segundos. Por outro lado, a terceira parte corresponde a parte massiva e que coleta a maior parte das informações. O objetivo…

4

Coleta de dados no SQL 2008–Script 2

A segunda parte do script de coleta de dados para diagnóstico de performance está apresentado nesse artigo. Aqui, os dados serão coletados em intervalos de 5 a 15 segundos. Esse é o coração do blocker script e corresponde a um ponto muito delicado, porque a coleta é realizada frequentemente sem impacto de performance. Links Relacionados…

2

Coleta de dados no SQL 2008–Script 1

A primeira parte do script de coleta de dados para diagnóstico de performance está apresentado nesse artigo. Links Relacionados Blocker Script original: sp_blocker_pss80 Versão SQL2000: Blocker Modificado Coleta de dados no SQL 2008–Script 1  Coleta de dados no SQL 2008–Script 2 Coleta de dados no SQL 2008–Script 3 Versão final: Monitor SQL (Versão atualizada do Blocker…


UPDATE WITH (NOLOCK): Como funciona?

Links relacionados Como usar SELECT WITH NOLOCK para melhorar a Performance? Qual a sintaxe correta: NOLOCK ou WITH (NOLOCK)? NOLOCK e INSERT/UPDATE/DELETE Problemas com NOLOCK Efeitos colaterais do NOLOCK – Parte 1 Efeitos colaterais do NOLOCK – Parte 2 O comando NOLOCK avisa o processador do SQL Server para evitar a utilização de bloqueios (LOCK)…


LAB: SQL Blocker Script 2000 (Performance)

Blocker Script é uma stored procedure escrita por um engenheiro de suporte (MikeZ), sendo muito utilizado para coletar dados relacionados a bloqueios. Esse script está disponível através do artigo KB 271509. How to monitor blocking in SQL Server 2005 and in SQL Server 2000 http://support.microsoft.com/kb/271509/en-us Esse script tem anos de existência e seu código continua…

10

NOLOCK ou WITH (NOLOCK): Qual a sintaxe correta?

A hint “nolock” permite que o processador do SQL Server não utilize bloqueios (LOCK) durante a leitura de informações, comportamento denominado de leitura suja. Esse é um truque velho e conhecido do SQL Server 2000 e que muitos desenvolvedores tem utilizado. O objetivo desse post é orientar sobre a a sintaxe correta do NOLOCK. Links…


Como usar SELECT WITH NOLOCK para melhorar a Performance?

Pode parecer uma dica simples demais, mas tenho observado muitas dúvidas quanto ao uso do NOLOCK. No tempo do SQL 2000, a própria Microsoft (que ninguém me ouça dizendo isso!) recomendava o uso indiscriminado do NOLOCK [sem referência]. Por esse motivo, decidi explicar um pouco seu funcionamento. Conhece o checklist de Performance de servidor? Checklist:…

13

SQL Server Waitstats (Wait Types Repository)

  Durante a palestra no TechEd, comentei sobre uma planilha “mágica” que continha uma série de wait types e as respectivas descrições. Essa planilha foi criada pelo pessoal de Escalação do Suporte e pode auxiliar muito no diagnóstico de problema. Segue aqui alguns exemplos: Alto consumo de CPU: SOS_SCHEDULER_YIELD, CXPACKET (paralelismo) Alto consumo de memória:…


SQL Server Perfmon Counters Poster

  Não sei quando foi que surgiu, mas parece que o pessoal da Quest Software organizou uma lista dos contadores do Performance Monitor. Soube por meio de um colega de trabalho, Uttam Parui, e gostaria de compartilhar as palavras dele para dar os créditos às pessoas envolvidas. I don’t know if you have seen the…

1