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

Guia para Entrevista PFE-SQL

Durante o processo de entrevista para PFE sempre procurei seguir uma linha de raciocínio para avaliação do candidato. O processo de entrevista era uma pressão para o candidato e também para o entrevistador. Afinal, o entrevistador deve ser rápido e certeiro na avaliação. O time de RH enviava dezenas de currículos para serem revisados, demandando…

16

Script – Conexões Órfãs

Mais um script: esse daqui se chama OPENCONN – esse script procura as conexões órfãs, que causam o famoso erro: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. Script OPENCONN Download

5

The timeout period elapsed prior to obtaining a connection from the pool

Por acaso você já recebeu essa mensagem de erro abaixo? Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. Esse é um problema bastante comum. Isso ocorre em programas .NET que abrem conexão…

5

SQLMON: Script de Monitoração SQL

Há um tempo criei a primeira versão do script SQLMON para acompanhamento de instâncias SQL Server. O script de monitoração foi modificado ao longo do tempo, sendo que já está na versão 14. http://blogs.msdn.com/b/fcatae/archive/2012/01/11/script-sqlmon-monitorando-sql-2008.aspx Quais são os problemas mais comuns? Quais deles podem ser identificados usando o SQLMON? Alto consumo de CPU (100% CPU) Degradação…

4

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

Placas de Rede com Auto-Negotiation

As placas de rede possuem uma configuração denominada de “auto-negotiation”, que permite determinar a velocidade de transmissão a ser utilizada. Esse é um recurso importante para ser habilitado nas placas de rede, pois somente assim é possível atingir a velocidade de 1Gbit. Quando esse recurso fica desabilitado, a comunicação fica limitada a velocidade fixa de…

4

Script SQLMON – Monitorando SQL 2008

Após mais de 1 ano trabalhando em um projeto de monitoração, está finalizado o script SQLMON para a captura de informações do banco de dados. Tenho usado o script no dia a dia para resolver principalmente problemas relacionado com desempenho. Até o momento, não percebi nenhum efeito colateral. USE master GO IF OBJECT_ID(‘tempdb..#spBlockerPfe’) IS NOT…

7

Múltiplas Instâncias SQL Server

Usando o SQL Server Enterprise Edition, você pode instalar até 50 SQL Servers. Então, sim, mais de um SQL Server pode ser instalado por máquina. Nesse caso, chamamos cada instalação de “instância” e cada uma possui um nome específico. É comum escutar o termo “Instância Default”, que poderia significar o mesmo que “instância sem nome”…

17

SQL Server e Portas TCP/IP

SQL Server é um serviço que utiliza o protocolo TCP/IP para atender às requisições dos usuários. A comunicação utiliza o protocolo chamado Tabular Data Stream (TDS) e, por padrão, utiliza a porta TCP 1433 do servidor de banco de dados. Por exemplo, ao rodar o comando NETSTAT -NA, verificam-se várias conexões do cliente 157.54.178.31 com…

0

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

5

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

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

Problema: The system detected a possible attempt to compromise security (Parte 1)

Hoje me deparei com um problema bastante interessante em um servidor SQL e gostaria de compartilhar: o servidor retornava erro ao rodar a stored procedure sp_readerrorlog. Msg 22004, Level 16, State 1, Line 0 Failed to open loopback connection. Please see event log for more information. Msg 22004, Level 16, State 1, Line 0 error…

2