Dicas são características banco de dados Oracle , que permitem aos programadores dizer Oracle que eles já sabem o melhor caminho de execução para uma consulta SQL e fornecer informações para esse caminho para que a Oracle vai adquirir. Dicas são comandos simples que contam o otimizador a fazer o que é dito. Dicas sugerindo
Antes de iniciar o trabalho real para responder a uma consulta , a Oracle olha em volta e toma uma decisão sobre o que ele pensa que é a melhor maneira de realizar a consulta. Este é o otimizador. Ele determina a forma mais eficiente para executar uma instrução SQL depois de considerar muitas características relacionadas com os objetos referenciados e as circunstâncias especificadas na consulta.
Mesmo se você criar seu aplicativo usando o código trabalhada inteligente , você ainda vai achar que há indícios necessários para declarações antes do otimizador segue o caminho de execução "ótimo" . Às vezes, o otimizador pode precisar de ajuda devido a defeitos no seu modelo ou nativas problemas na recolha , armazenamento e processamento de dados complexos. Sugestões podem forçar o otimizador a fazer o melhor caminho de execução para uma consulta, não importa o que a deficiência. No entanto, deve ser tentada , sugerindo dicas para o otimizador apenas quando absolutamente necessário e se você é um desenvolvedor experiente .
Tipos Dica
Oracle tem três tipos de sugestões.
Junte HintThe dica de junção é usado quando mais de uma tabela é utilizada em uma consulta. Essa dica força o tipo de procedimento juntar que é usado. Junta-se pode ser usado em SELECT, UPDATE e DELETE. A seguinte sugestão LÍDER sugere juntar ordens :
/* + LÍDER ( [@ queryblock ] tablespec [ tablespec ] ... ) * /
Consulta Hinta dica de consulta é utilizado quando a lógica específica tem que ser funcional a um conjunto de consulta , em oposição a uma parte dele . Por outro lado , não há nenhuma maneira de determinar que parte de uma consulta deve ser usado com a dica. Uma consulta sempre tem o SELECT, UPDATE, DELETE , INSERT ou MERGE . A seguinte sugestão pode ser usado com todos eles :
selecionar /* + * DICA /namefrom empwhere id = 1;
HintHints tabela que especifica uma tabela geralmente se referem a tabelas no DELETE SELECIONE ou UPDATE de uma consulta na qual a dica ocorre , não para tabelas dentro de quaisquer opiniões veiculadas pela declaração . O otimizador de consulta geralmente escolhe o melhor método de otimização sem sugestões sendo especificado. No entanto, embora você especificar uma dica de tabela em seu código , o otimizador de consulta pode ignorar a dica. Dicas de tabela será ignorada se a tabela não for escolhido pelo otimizador de consulta e usado no plano de consulta sucedendo
selecionar /* + ALL_ROWS * /employee_id , last_name , salário, job_idfrom empwhere employee_id = 4689 ; . < Br >