As 9 Regras Ninjas de Performance

Esse post resume muita coisa do que já passei. Resolvi compilar uma série de regras para abordar os problemas mais comuns de performance. Essas são as “regras ninjas” para ajudar a guiar o trabalho do dia a dia e atingir bons resultados em pouco tempo.   REGRA 1: DISK – Monitore o consumo de recursos…

9

MSDTC Internals

Essa semana me surpreendi com o SQL Saturday #325. Fiquei tão empolgado que resolvi investir um tempo para escrever esse post. A escolha do tema foi através de uma conversa no twitter. Obrigado @DemetrioSQLDBA e @SQLInsane pela sugestão. Frequentemente associamos o SQL Server às operações transacionais. Todas as informações são consistentes graças ao Transaction Log….

7

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

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…

0

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)…

0

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…

0

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

Efeitos Colaterais do WITH (NOLOCK) – Parte II

Como havia mostrado no post anterior, o uso do NOLOCK pode causar comportamentos estranhos. Nesse post, vou concentrar a atenção para o ERRO 601. Msg 601, Level 12, State 3, Line 1 Could not continue scan with NOLOCK due to data movement. A interpretação usual é que o erro foi decorrente de uma situação de…

0

Efeitos colaterais do WITH (NOLOCK) – Parte I

Nesse post vou comentar sobre a utilização da hint NOLOCK e os efeitos colaterais associados. Todo mundo diz que NOLOCK é importante para performance e que, sem esse artifício, ocorreriam bloqueios desnecessários e situações de deadlocks. Com certeza isso é verdade, pois não são alocadas estruturas de table, page, row ou key lock. Por outro…

6

Deadlock Art

Fantástico!!! A imagem foi feita a partir do SQL Profiler, que captura informações em XML e renderiza uma imagem para mostrar quais são os recursos e sessões envolvidos no deadlock. O mais incrível é que esse deadlock ocorreu em um sistema real e não foi proposital.     Essa é uma outra imagem de um…

0