Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

As restrições de chave estrangeira influenciam as transformações de consulta no Oracle?


Sim, ter restrições de chave estrangeira em vigor pode melhorar o desempenho da consulta. Existem várias transformações que estão abertas ao otimizador quando existem restrições de chave estrangeira apropriadas que geralmente não estão disponíveis. Por exemplo, se você se juntar a A e B mas apenas selecione dados de B , o otimizador pode eliminar A do plano de consulta inteiramente se houver uma restrição de chave estrangeira em vigor (esse tipo de coisa é muito útil quando você tem visualizações úteis que se juntam em mais tabelas do que sua consulta atual precisa estritamente porque você não precisa negociar o custos de desempenho das junções extras em relação à reutilização de código usando uma exibição existente). Eles também são úteis quando você está fazendo coisas como usar coisas como reescrever consulta para reescrever uma consulta para usar uma visão materializada em um sistema de data warehouse/tipo DSS.

Tom Kyte tem uma apresentação Metadata Matters que fala sobre como vários tipos de restrições, juntamente com outras partes de metadados, podem influenciar o otimizador.