Declarações SQL são o principal meio através do qual as empresas e organizações recuperam informação da base de dados. No entanto, estas declarações nem sempre são compostas com a eficiência que poderiam ser, o que pode levar a desacelerações a partir do servidor. É por isso que se ouve tanto sobre a optimização de consultas SQL – é um processo necessário se se espera assegurar níveis elevados de desempenho do servidor.
Parte do processo de optimização e afinação SQL envolve calibrações regulares de consultas SQL. Podem ser utilizadas diferentes consultas SQL para recuperar a mesma informação, mas nem todas as consultas são eficientes – por isso é importante assegurar que se está a utilizar as consultas certas para optimizar a forma como os dados são extraídos das bases de dados e servidores SQL. Felizmente, existem ferramentas capazes de o ajudar com este processo de ajustamento do desempenho da consulta SQL. Neste guia, saliento porque é que a optimização de consultas SQL é importante e que ferramentas pode utilizar para melhorar a optimização do desempenho de consultas SQL como o SolarWinds® Database Performance Analyzer.
p>A necessidade de optimização de consultas SQL
Como verificar e melhorar o desempenho de consultas
Benefícios das ferramentas de afinação do servidor SQL
Melhores ferramentas de optimização do desempenho de consultas SQL
A necessidade de optimização de consultas SQL
Baixas ou falhas nas consultas SQL podem levar a vários problemas para empresas e organizações. Considerando que os clientes esperam que os websites respondam rapidamente às suas pesquisas, atrasos significativos e atrasos no tempo de resposta da base de dados podem levá-los a levar o seu negócio para outro lugar. Embora alguns milissegundos de atraso possam não parecer muito para acções ou processos individuais, podem rapidamente agravar-se se se espalharem por toda uma empresa ou negócio.
Ajuste doSQL ajuda a tornar o código mais eficiente, o que é uma parte importante para manter o desempenho óptimo das consultas de bases de dados. No entanto, fazer a optimização do desempenho e o ajuste à mão é um esgotamento do tempo e dos recursos dos administradores de bases de dados. É também propensa a erros humanos, uma vez que requer que os administradores tenham as competências e perícia para não só serem capazes de localizar as consultas de baixo desempenho, mas também para saberem como corrigir o código. Isto requer conhecimento de instruções SQL de topo e tipos de espera, bem como consultas bloqueadas e uma compreensão de como funcionam os índices – todas as ferramentas de afinação ajudam a facilitar a gestão.
Como verificar e melhorar o desempenho das consultas
Uma das questões mais comuns durante este processo é sobre como verificar o desempenho das consultas no SQL Server, uma base de dados comum baseada em SQL. Se estiver a pensar como verificar o desempenho da base de dados no SQL Server, faria bem em começar por investigar as suas consultas e melhorar o seu desempenho. Para começar com a optimização de consultas SQL Server, deve considerar estes passos básicos:
- Ao iniciar o processo de afinação de uma base de dados, primeiro certifique-se de que está a olhar para tabelas (não vistas), e depois tome nota da contagem de linhas. Em seguida, filtre a contagem de linhas examinando as cláusulas WHERE e JOIN.
- Nextra, examine as colunas de consulta para SELECT * e funções escalares que possam recuperar mais informação do que a consulta requer. Considere tornar o índice pesquisável – isto elimina a necessidade de efectuar uma pesquisa completa na base de dados.
- li>Então, examine as chaves, restrições, e índices existentes para evitar duplicação e sobreposição. Tome nota da definição da chave primária e se está agrupada.
- li>Agora está pronto para executar o plano de execução. Assegure-se de que as estatísticas estão em vigor antes de o fazer. Uma vez executado o plano, examinar a leitura lógica – menos I/Os lógicos significa que a consulta está a correr mais rapidamente – e registar os resultados.
- Ajustar a consulta concentrando-se nas operações mais caras, e depois executá-la novamente. Comparar os resultados.
- Se necessário, considerar ajustar os índices para incluir um índice de cobertura ou de filtragem (embora não se deva utilizar este último se tiver declarações parametrizadas).
>li>Vai então querer assegurar-se de que as tabelas são o mais selectivas possível ao trabalhar com conjuntos de dados mais pequenos.
SQL Server Optimization Best Practices
Asso que optimiza o desempenho da base de dados SQL, estas dicas gerais de consulta e optimização de base de dados podem ajudá-lo a melhorar o desempenho ao nível sintáctico.
Seleccionar campos SELECT sobre SELECT *
Uma forma fácil de reduzir a carga de trabalho que cada consulta coloca numa base de dados é limitar a quantidade de informação que cada consulta recupera. No processo inicial de execução das consultas, muitos programadores utilizarão a declaração SELECT *, que recuperará toda a informação disponível armazenada numa tabela da base de dados. Com tabelas grandes com campos e linhas múltiplas, utilizando instruções SELECT * criam um esgotamento dos recursos da base de dados ao potencialmente recuperar grandes quantidades de dados desnecessários.
Ao utilizar instruções SELECT com campos definidos mais especificamente, os administradores podem dirigir as consultas para recuperar apenas a informação necessária.
Anular declarações SELECT DISTINCT
Embora o estado SELECT DISTINCT seja útil para remover duplicados de uma consulta, ele utiliza uma grande quantidade de poder de processamento. Para evitar abrandar o desempenho da consulta, pode seleccionar mais campos para gerar resultados únicos.
Definir filtros com WHERE em vez de HAVING
O objectivo principal da afinação SQL é a eficiência, e na Ordem de Operações SQL, WHERE as cláusulas serão calculadas antes das declarações HAVING. Isto torna-as mais eficientes para definir filtros, porque limitarão o número de registos recuperados da base de dados. Contudo, as declarações HAVING devem ser utilizadas quando se filtram em campos agregados.
Keep Wildcards no fim das frases
Wildcards são úteis para criar pesquisas extremamente amplas, o que também corre o risco de ser ineficiente. A combinação de um wildcard líder com um wildcard final é especialmente assim, pois irá consultar a base de dados para todos os registos de texto correspondente ao que existe entre os dois wildcards. Se procurar por nomes de clientes, por exemplo, %Son% recuperaria tanto “Sonia” como “Richardson”, enquanto que Son% apenas retornaria “Sonia”
Utilizar LIMIT para Amostra de Resultados de Consulta
Utilizar uma declaração LIMIT antes de executar uma consulta permitirá aos administradores da base de dados pesquisar rapidamente um número especificado de resultados para determinar se a consulta necessita de mais refinamento. As consultas que potencialmente retornam um grande número de resultados são tributárias para correr em bases de dados e a utilização de uma declaração LIMIT simplifica o processo de testes de ajustamentos feitos a uma consulta.
Utilizar a adesão ao INNER em vez de WHERE para adesões
Embora alguns programadores de SQL prefiram utilizar cláusulas WHERE ao fazer adesões, isto corre o risco de criar o que é conhecido como uma adesão cartesiana. Também chamados Produtos Cartesianos ou CROSS JOINs, estas junções geram todas as combinações possíveis das variáveis listadas na instrução SQL. Isto pode causar rapidamente problemas com grandes bases de dados porque todas as combinações possíveis a partir de duas tabelas ricas em dados poderiam facilmente gerar biliões – se não triliões – de resultados. A cláusula INNER JOIN evita em grande parte este problema.
Back top
Benefícios das ferramentas de afinação do servidor SQL
Embora a afinação de consultas SQL possa ser feita manualmente, é um processo complicado e demorado, razão pela qual a utilização de ferramentas de afinação SQL pode permitir aos administradores de bases de dados maximizar mais eficientemente o desempenho dos seus servidores e bases de dados. As ferramentas de afinação do desempenho de consultas SQL são uma parte essencial da monitorização abrangente do SQL Server, que por sua vez liberta os administradores e o pessoal de apoio tecnológico para dedicar a sua atenção à resolução de questões mais críticas.
As melhores ferramentas de optimização de consultas SQL incluirão três funções principais:
- afinação SQL: Isto refere-se à capacidade da ferramenta de reescrever o código da instrução SQL para melhorar o desempenho de servidores e bases de dados.
- Monitorização de bases de dados baseadas na nuvem: Com a mudança para computação baseada na nuvem e redes, muitas aplicações de ajustamento SQL incluem agora a capacidade de monitorizar bases de dados, independentemente do local onde estão alojadas.
- Optimização online: A capacidade de aceder remotamente e optimizar consultas a partir de dispositivos móveis e navegadores web – mais do que precisar de o fazer a partir de uma estação de trabalho dedicada numa determinada localização física – torna o processo de afinação de instruções SQL muito mais conveniente para navegar.
Ferramentas de afinação fornecem funcionalidade adicional e facilidade de utilização para a optimização de consultas SQL. As aplicações de afinação do SQL Server monitorizam o desempenho da base de dados e fornecerão frequentemente interfaces de utilizador com representações gráficas do desempenho da consulta e tempos de espera, o que pode ajudar os administradores a identificar estrangulamentos de recursos com maior rapidez e precisão. Ao criar um registo histórico de métricas de desempenho, estas ferramentas de monitorização são uma parte inestimável para garantir que todas as consultas SQL actuais estão a funcionar da forma mais eficiente possível.
Muitas ferramentas que ajudam na optimização de consultas no SQL Server vêm com sistemas de alerta e notificação personalizáveis incorporados para identificar e corrigir automaticamente as consultas com mau desempenho. Como isto elimina a necessidade de um administrador de base de dados aprovar ou implementar alterações sugeridas, as ferramentas de ajuste do SQL Server podem reduzir o tempo de resposta ao resolver problemas do servidor à medida que estes surgem. Ao gerir e monitorizar proactivamente as consultas SQL, os administradores de bases de dados podem assegurar que as consultas SQL continuem a funcionar eficientemente, ao mesmo tempo que se podem evitar problemas antes que estes aconteçam.
Back top
Best SQL Query Performance Optimization Tools
Embora seja definitivamente útil conhecer algumas das regras de ajuste manual de consultas SQL, parte do apelo das ferramentas de optimização de consultas SQL é a sua capacidade de racionalizar o processo de ajuste e pode mesmo oferecer conselhos sobre cláusulas e declarações onde a eficiência pode ser melhorada. Aqui estão três dos meus favoritos para que possa verificar.
SolarWinds Database Performance Analyzer
Esta aplicação de afinação de desempenho de consultas SQL foi concebida tanto para a monitorização do desempenho como para a afinação de consultas. Sou a favor do Database Performance Analyzer por muitas das mesmas razões que gosto de outros programas SolarWinds especificamente porque vem carregado de várias características personalizáveis, incluindo painéis intuitivos que lhe permitem acompanhar facilmente o desempenho das consultas SQL e das máquinas clientes e detectar rapidamente padrões ao longo do tempo com métricas codificadas por cores.
Analizador de Desempenho de Base de Dados fornece monitorização 24 horas por dia para bases de dados e utiliza protocolos de detecção baseados em anomalias para identificar consultas de baixo desempenho. A interface de utilizador abordável fornece tanto vistas de grandes imagens sobre o desempenho holístico da rede como detalhes granulares como o Top Waits for SQL, o que permite aos administradores identificar rapidamente as consultas que mais necessitam de atenção.
Database Performance Analyzer cria um registo histórico de desempenho, sintetizando dados quase em tempo real com métricas históricas e actuais para criar gráficos de barras que, quando emparelhados com alertas e notificações personalizáveis, podem rapidamente manter os administradores informados de potenciais problemas. Os conselheiros de afinação também oferecem sugestões sobre questões que necessitam de atenção imediata.
Tudo considerado, é uma excelente e abrangente opção totalmente compatível com outros produtos SolarWinds. Se pretende experimentar antes de comprar, encorajo-o a verificar os seus produtos de 14 dias de teste grátis.
p>Back top
SentryOne SQL Sentry
Esta aplicação de afinação de desempenho de consultas SQL e gestão de bases de dados também pode ser utilizada para afinar consultas SQL. SentryOne permite aos administradores de bases de dados estabelecer protocolos de referência de desempenho a serem aplicados a servidores SQL e bases de dados para detectar estrangulamentos de recursos e consultas SQL de baixo desempenho.
SentryOne apresenta uma funcionalidade de detecção de bloqueios exibindo processos de bloqueio numa interface gráfica semelhante ao SolarWinds Database Performance Analyzer. SentryOne também rastreia os processos que resultam em bloqueios e fornece conselhos sobre as alterações a implementar ao afinar as consultas.
SentryOne automatiza também uma grande parte do processo de monitorização e inclui mais de 100 condições de alerta integradas para manter os administradores da base de dados informados dos problemas de desempenho à medida que estes ocorrem. SentryOne também pode ser personalizado para responder automaticamente quando uma das condições de limiar tiver sido cumprida. Ao automatizar a maioria da optimização e gestão de consultas SQL, o sistema de alerta do SentryOne liberta os administradores para tarefas mais urgentes.
Paessler PRTG Network Monitor
Outro forte concorrente para a afinação do desempenho de consultas SQL é o Paessler’s PRTG Network Monitor. Esta ferramenta de monitorização de rede pode ser usada para acompanhar métricas de desempenho para várias variedades de bases de dados SQL – incluindo Microsoft SQL Server, MySQL, Oracle SQL, e PostgreSQL – o que faz através de sensores individuais de bases de dados. Os sensores são rapidamente configurados durante o arranque e não requerem manutenção adicional uma vez activos.
Para optimização da consulta SQL no SQL Server, o Network Monitor PRTG rastreia as consultas SQL em cada fase do pedido e apresenta os tempos de execução numa interface de painel para uma rápida avaliação dos problemas de desempenho. As amplas capacidades de monitorização de rede da aplicação também fornecem visibilidade para questões de rede mais vastas que podem afectar o desempenho dos seus servidores e bases de dados. A amplitude de informação que a ferramenta rastreia permite uma experiência simplificada de ajuste do desempenho de consultas SQL.
Como as outras duas opções aqui, o Network Monitor PRTG possui um sistema de alerta que funciona para manter todos os intervenientes-chave informados caso surjam potenciais problemas de desempenho. Os alertas também podem ser personalizados, mas o PRTG Network Monitor inclui uma funcionalidade API adicional que permite aos administradores escrever scripts de notificação adaptados precisamente às especificações das suas redes, servidores, e bases de dados.
0 comentários