Um determinado sistema de gerenciamento de banco de dados pode oferecer um ou mais mecanismos para devolver o plano para uma determinada consulta. Alguns pacotes apresentam ferramentas que gerarão uma representação gráfica de um plano de consulta. Outras ferramentas permitem que um modo especial seja definido na conexão para fazer com que o DBMS retorne uma descrição textual do plano de consulta. Outro mecanismo para recuperar o plano de consulta envolve a consulta de uma tabela de banco de dados virtual após a execução da consulta a ser examinada. No Oracle, por exemplo, isso pode ser alcançado usando a instrução Plano de Explicação.
A ferramenta Microsoft SQL Server Management Studio, que é fornecida com o Microsoft SQL Server, por exemplo, mostra esse plano gráfico ao executar este exemplo de junção de duas tabela contra um banco de dados de amostra incluído:
A interface do usuário permite a exploração de vários atributos dos operadores envolvidos no plano de consulta, incluindo o tipo de operador, o número de linhas que cada operador consome ou produz e o custo esperado do trabalho de cada operador.
O plano textual fornecido para a mesma consulta na captura de tela é mostrado aqui:
Indica que o mecanismo de consulta fará uma varredura sobre o índice de chave primária na tabela de funcionários e uma busca correspondente através do índice de chave primária (a coluna contactId) na tabela de contato para encontrar linhas correspondentes. As linhas resultantes de cada lado serão mostradas para um operador de junção de loops aninhadas, classificadas e retornadas como o conjunto de resultados para a conexão.
Para ajustar a consulta, o usuário deve entender os diferentes operadores que o banco de dados pode usar e quais podem ser mais eficientes do que outros enquanto ainda fornecem resultados de consulta semanticamente corretos.
A revisão do plano de consulta pode apresentar oportunidades para novos índices ou alterações nos índices existentes. Ele também pode mostrar que o banco de dados não está aproveitando corretamente os índices existentes (consulte o Optimizador de consulta).
Um otimizador de consulta nem sempre escolhe o plano de consulta mais eficiente para uma determinada consulta. Em alguns bancos de dados, o plano de consulta pode ser revisado, os problemas encontrados e, em seguida, o otimizador de consulta dá dicas sobre como melhorá -lo. Em outros bancos de dados, alternativas para expressar a mesma consulta (outras consultas que retornam os mesmos resultados) podem ser tentadas. Algumas ferramentas de consulta podem gerar dicas incorporadas na consulta, para uso pelo otimizador.
Alguns bancos de dados - como o Oracle - fornecem uma tabela de planos para o ajuste da consulta. Esta tabela de plano retornará o tempo e o tempo para executar uma consulta. O Oracle oferece duas abordagens de otimização:
CBO or Cost Based OptimizationRBO or Rule Based OptimizationO RBO está lentamente sendo preterido. Para que a CBO seja usada, todas as tabelas mencionadas pela consulta devem ser analisadas. Para analisar uma tabela, um DBA pode iniciar o código do pacote DBMS_STATS.
Outras ferramentas para otimização de consultas incluem:
SQL TraceOracle Trace and TKPROF Microsoft SMS (SQL) Execution PlanTableau Performance Recording (all DB)