оптимизировать и перекомпилировать подсказку в Oracle?

Есть ли какие-либо подсказки в Oracle, которые работают так же, как эти подсказки SQL Server?

Перекомпилировать: запрос перекомпилируется каждый раз при его запуске (если планы выполнения должны сильно различаться в зависимости от параметров). Будет ли это лучше по сравнению с cursor_sharing в Oracle?

Оптимизировать для: Когда вы хотите, чтобы план был оптимизирован для определенного параметра, даже если при первом запуске SQL используется другой? Я думаю, может быть, можно было бы помочь и с cursor_sharing?


person KTrum    schedule 23.02.2011    source источник


Ответы (2)


Поскольку вы используете 11g, Oracle должен использовать адаптивный совместное использование курсора по умолчанию. Если у вас есть запрос, в котором используются переменные связывания, а гистограмма в столбце с искаженными данными указывает на то, что разные значения переменных связывания должны использовать разные планы запросов, Oracle будет автоматически поддерживать несколько планов запросов для одного и того же оператора SQL. Не было бы необходимости специально подсказывать запросам, чтобы получить такое поведение, оно уже встроено в оптимизатор.

person Justin Cave    schedule 23.02.2011
comment
Да, я знаю об этом. Но я не думаю, что адаптивное совместное использование курсора включено по умолчанию. В любом случае отметим это как правильное :) - person KTrum; 05.04.2011

Я не знал, но нашел обсуждение с некоторыми решениями здесь, на forums.oracle. ком

person Tony Andrews    schedule 23.02.2011