Obviamente, manter vários índices diferentes tem um impacto negativo no desempenho de inserção e exclusão. E quanto ao desempenho da consulta: faz sentido manter muitos índices em uma tabela? O desempenho da consulta melhorará em qualquer caso com um índice adicionado (é claro, para consultas que usem o índice) ou é possível que o desempenho da consulta seja degradado com muitos índices, pois torna-se necessário consultar todos os índices para obter o índice resultado?
Caso existam índices diferentes em uma tabela: todos eles serão considerados ou apenas os melhores do ponto de vista do otimizador? A Oracle implementa índices multidimensionais?
oracle
performance
index
paweloque
fonte
fonte
Respostas:
Levará um pouco mais de tempo para gerar o plano quando houver mais índices a serem considerados, mas duvido que a diferença seja mensurável. Os motivos para a eliminação de um índice não listam o desempenho da consulta. Por outro lado, em geral, você não deve criar índices, a menos que saiba que eles serão usados para tornar uma consulta mais eficiente.
No Oracle Concepts Guide , aqui estão os critérios para criar um índice.
Todos os índices serão considerados no sentido de que todos os índices nas tabelas da consulta são examinados para determinar se eles poderiam ser usados. Aqueles que poderiam ser examinados para determinar a utilidade.
fonte
Enquanto suas estatísticas estiverem atualizadas, o otimizador baseado em custos deve tomar decisões sensatas sobre quais índices usar. Caso contrário, é a hora de usar as dicas . Ele nunca consultará um índice em uma coluna que não seja necessário para satisfazer a consulta.
fonte
Encontrei isso na seleção de uma estratégia de índice do Guia do Desenvolvedor de Aplicativos . Essa página é sobre 'selecionar uma estratégia de índice':
fonte