Português

Instruções: Definir uma dica SQL para instruir o otimizador Oracle a escolher um plano de execução

Summary

Uma sugestão da Oracle fornece ao otimizador orientações quanto à escolha de um plano de execução para a instrução SQL que está sendo executada.

A dica Oracle INDEX instrui o otimizador a usar um escaneamento de índice para a tabela especificada. Use a dica INDEX para índices de ligação de bitmap, de bitmap, árvore B, domínio e baseados em função.

Ao trabalhar com tabelas que contêm atributos ST_Geometry e um st_spatial_index, especifique a dica Oracle INDEX e o nome do st_spatial_index para instruir o otimizador a acessar os dados por meio do índice.

Conforme declarado na documentação de Referência SQL da Oracle, ("Se a dica INDEX especificar um único índice disponível, o banco de dados executará um escaneamento nesse índice. O otimizador não considera um escaneamento completa da tabela ou um escaneamento de outro índice na tabela.") Quando uma dica INDEX é especificada, o otimizador usa o índice como o caminho de acesso principal.

Procedure

O exemplo a seguir demonstra uma instrução SQL que consulta a tabela de pacotes com dois filtros de predicado, em que o proprietário é igual a "ARATA" e o envelope cruza uma área específica.

A tabela de pacotes possui um índice nos atributos de forma e proprietário. Ao incluir a dica INDEX "/*+ INDEX (parcels shape_idx) */"
na instrução SQL, instrui o otimizador a usar o índice de forma como o caminho de acesso (mesmo que a seletividade e o custo do índice do proprietário sejam menores que o custo de utilizar o índice da forma).

Código:
SQL> SELECT /*+ INDEX (parcels shape_idx) */
2 FROM parcels
3 WHERE owner = 'ARATA'
4 AND st_envintersects(shape, 10, 12, 12, 14) = 1;


Para obter informações adicionais sobre como configurar dicas Oracle e outras dicas, consulte a documentação da Oracle.

    Related Information

    Last Published: 5/5/2016

    Article ID: 000009658