Você é um programador, DBA, ou administrador de sistema preso com consultas de longa duração no SQL Server, e precisa de fazer o ajustamento do desempenho do SQL Server. Vamos ensinar-lhe a afinação de SQL numa série de tutoriais fáceis e gratuitos:
- Medir a rapidez com que o servidor vai agora.
- Finalmente, se tiver de comprar novos servidores, obtenha uma lista de verificação das melhores práticas de configuração, e carregue o teste antes de entrar em funcionamento.
li>Desempenho afinar as consultas.li>Desempenho afinar os índices.li>Desempenho afinar as definições do SQL Server.li>Desempenho afinar o hardware.
Vamos entrar nos detalhes de cada passo.
Medir o desempenho do SQL Server
Quando os utilizadores se dirigem a si e dizem que as suas consultas são lentas, não quer apenas acreditar na sua palavra: quer saber exactamente quais são as consultas lentas, e porquê. Vamos começar por
- sp_BlitzFirst® – esta ferramenta gratuita é como o velocímetro do SQL Server. Mostra-lhe a velocidade do SQL Server, e quais os tipos de espera que o impedem de ir mais depressa.
- SQL Server Perfmon Tutorial – como configurar o Perfmon, que contadores do SQL Server Perfmon a seguir, e o que significam os indicadores.
- Watch Brent Tune Servers – no Microsoft Ignite 2015, ele levou várias cargas de trabalho do SQL Server, encontrou o gargalo de engarrafamento, e depois afinou várias definições para correcções rápidas.
Então, antes de começar a alterar as coisas, pergunte que partes do servidor está autorizado a alterar. O Manager’s Guide to Tuning SQL Server dá-lhe uma lista de verificação simples das partes que pode afinar, alterar ou substituir completamente.
Como optimizar as consultas SQL
Se tiver uma aplicação interna, e tiver autorização para fazer a optimização das consultas, eis algumas formas de encontrar as consultas de longa duração no SQL Server, e depois como aumentar o seu desempenho. Primeiro, precisamos de encontrar quais as consultas a optimizar, e aqui estão as ferramentas de afinação do desempenho da consulta que utilizo:
- Para encontrar as suas consultas de longa duração em geral, utilize o script gratuito sp_BlitzCache. Não tem de instalar nada antes do tempo, e funciona em todas as versões suportadas do SQL Server a partir de 2008. (Até funciona na nuvem.)
li>Para encontrar as suas consultas de longa duração neste momento, execute sp_BlitzWho. Mostra consultas do mais longo para o mais curto, e dá-lhe os seus planos de execução.
Vai notar que eu não disse para apanhar as consultas lentas com SQL Profiler. O Profiler não é um bom monitor de desempenho do SQL Server: na verdade, faz com que todas as consultas corram mais devagar. Está muito melhor usando a cache do plano como mostrado acima.
Após ter encontrado as consultas SQL caras que precisa de afinar, aqui estão as minhas dicas favoritas de afinação de desempenho:
- Watch Brent Tune Queries – alguma vez se perguntou como é que outra pessoa o faz? Peer over Brent’s shoulder in this free SQL Server tutorial.
- 7 Things Developers Should Know About SQL – including why why functions rarely perform well, why WITH NOLOCK does not mean there’s no locking, and more.
- How to measure performance improvements – Kendra explica como utilizar as estatísticas do SSMS.
- Como ler planos de execução de consultas e afiná-los para os tornar mais rápidos.
Como fazer o ajuste do desempenho do índice
Se não lhe for permitido optimizar as consultas SQL, mas ainda precisa de as acelerar, então poderá ter de desenhar índices não incluídos e cobrir índices. Isto pode aumentar o desempenho de uma consulta SQL sem
querer tornar as estruturas da base de dados mais eficientes para que o SQL Server funcione menos, aqui estão os nossos recursos:
- sp_BlitzIndex® – execute isto na sua base de dados para uma verificação de sanidade gratuita. Mostra índices em falta, índices não utilizados, duplicados, pilhas, e mais, e explica porque estão a matar o seu desempenho.
- Recursos de indexação – os nossos posts e vídeos favoritos no blogue sobre afinação de índices.
- SQL Server Book Recommendations – ok, os livros não são gratuitos, mas as nossas recomendações são. Escolhemos os melhores livros de afinação de iniciantes, avançados e de desempenho.
- Particionamento de tabelas – esta característica parece ser uma óptima forma de dividir grandes tabelas, mas vem com algumas grandes gotchas.
- Como afinar índices – e fazer com que as consultas do SQL Server sejam mais rápidas.
Performance Tune SQL Server’s Settings
Surprendentemente, muitas das configurações padrão do SQL Server podem levar a um mau desempenho. Vamos falar sobre o que precisa de fazer:
- Executar sp_Blitz® no servidor. É uma verificação de saúde gratuita que apanha muitos gargalos de desempenho comuns.
- Verifica a nossa lista de verificação da configuração do SQL Server – algumas simples afinações de configuração podem levar a aumentos de desempenho de 20-30% desde o início sem gastar qualquer dinheiro extra.
- Reveja a lista de verificação do mau desempenho – as 5 coisas de Jeremiah que corrigem o mau desempenho do SQL Server.
- Guia do Sysadmin para a Memória do SQL Server – porque é que o sqlserver.exe não usa muita memória? Como pode saber se precisa de mais?
Performance Tune the Hardware
Hey, por vezes, atirar-lhe hardware é a solução mais rápida, fácil e barata.
- Qual é o Menor Servidor SQL que se deve construir? – Brent explica porque é que 96GB de RAM não é assim tanto – especialmente quando se compara com os custos de licenciamento do SQL Server.
- SSD RAID Load Testing Results – Exactamente quão rápido são os SSDs de consumo de prateleira, especialmente quando os colocamos atrás de um controlador RAID?
- Armazenamento Partilhado para SQL Server – fazemos muitas afinações SAN, e reunimos os nossos recursos favoritos.
- Melhores Práticas de Virtualização – licenciamento, recuperabilidade, e configurações de desempenho.
- Virtualização, SANs, e Hardware para SQL Server – uma aula online de 7 horas ensinando como configurar e afinar as coisas.
Building and Load Testing New SQL Servers
Quando estiver a planear o tamanho de um servidor a construir, comece com o vídeo do Brent do Microsoft TechEd 2012, Building the Fastest SQL Servers. Ele explica os dois padrões de acesso comuns para bases de dados (OLTP e data warehousing) e dá-lhe recursos sobre que hardware escolher para cada um.
Para data warehouses, vá à página de aterragem Fast Track da Microsoft, mas ANTES DE CLICAR, esta página tem muitas coisas de marketing, e precisa de saber o que procura. Concentre-se nas Configurações de Referência e nos Guias de Configuração. Existem alguns neutros da Microsoft, e depois há guias específicos de fornecedores da Dell, HP, IBM, etc. Poderá ter de percorrer todo o caminho até ao fundo para ver o material específico do fornecedor.
Após o servidor estar construído, aqui estão os nossos recursos favoritos para testes de carga e configuração:
- Quão rápido é o seu armazenamento? – Eu mostro-lhe como utilizar a ferramenta gratuita CrystalDiskMark para fazer um teste de carga rápida em unidades de estado sólido e SANs.
- Como testar o desempenho SAN com SQLIO – SQLIO é provavelmente a pior ferramenta na história: não tem nada a ver com bases de dados. No entanto, ainda é muito útil para testar estrangulamentos.
Need SQL Server consulting?Somos consultores de ajuste de desempenho.
Somos especializados em tornar o Microsoft SQL Server rápido e fiável.
Os nossos clientes são diversos: sites dot-com, fundos de cobertura, hospitais, fornecedores de software, e até pequenas lojas de 1-2 pessoas. Todos têm uma coisa em comum: estão frustrados com os seus Servidores SQL, e precisam de respostas rápidas e económicas.
Provavelmente já nos viram presentes em conferências em todo o mundo, e podem até ter aprendido alguma coisa. Vai adorar as nossas aulas de formação presencial e os nossos vídeos de formação.
Quer uma ajuda mais rápida e personalizada? Oferecemos um check-up de saúde e desempenho do SQL Server que chega rapidamente à causa raiz dos problemas e lhe mostra como resolvê-los. Contacte-nos agora para saber mais.