Вопрос:

Когда использовать Oracle подсказки?

sql oracle10g query-optimization

815 просмотра

1 ответ

929 Репутация автора

Я делаю некоторый рефакторинг в Oracle Schema (oracle version 10) и вижу много представлений, которые используют подсказки *+ALL_ROWS*/. В других взглядах есть и другие виды подсказок. Почему я должен использовать подсказки? БД не делает лучший выбор в базе запроса? большое спасибо!

Автор: Vargan Источник Размещён: 25.01.2013 04:00

Ответы (1)


3 плюса

44753 Репутация автора

Решение

Это хороший вопрос, но нет однозначного ответа на него, потому что есть разные категории подсказок, к которым применимы разные рекомендации. http://docs.oracle.com/cd/E11882_01/server.112/e16638/hintsref.htm#PFGRF501

ALL_ROWS - это подход к оптимизации, и совершенно правильно указать его, чтобы было ясно, что ваша цель - получить последнюю строку набора результатов как можно раньше, а не первую. Во многих случаях оптимизатор будет выводить это из запроса в любом случае, поэтому он может быть избыточным, но вы не будете вредить чему-либо, если будете его правильно использовать.

Кроме того, существуют различные категории, некоторые из которых можно охарактеризовать как предназначенные для тестирования и исследования, такие как optimizer_features_enable. Можно предположить, что подсказки, которые влияют на порядок соединения, путь доступа и операции соединения, относятся к этому типу, поскольку их иногда не рекомендуется использовать в приложениях. Однако оптимизатор не идеален и не обладает идеальной информацией, и иногда он делает выбор на основе неполной информации, которую необходимо исправить.

Некоторые подсказки, несомненно, полезны и уместны - APPEND, пожалуй, лучший пример, поскольку это стандартный метод для вызова прямой вставки пути.

В конце очень сложно дать общий совет по этому вопросу. На самом деле каждый совет должен быть рассмотрен в отношении того, должен ли он использоваться в рабочем коде или нет, но если вы понимаете оптимизатор и понимаете, что на самом деле делают подсказки, которые вы рассматриваете, и есть ли лучшие альтернативы - например, лучшая статистика, разные Параметры инициализации или динамическая выборка (сама подсказка) - вы сможете сделать свою собственную оценку и защитить ее в случае необходимости.

Автор: David Aldridge Размещён: 25.01.2013 04:13
Вопросы из категории :
32x32