DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Возврат стоимостного оптимизатора

Говорят, что время - лучший учитель. Именно так и случилось со стоимост­ным оптимизатором. Ему понадобилось почти семь лет, чтобы научиться справ­ляться с реальными задачами. Процессу взросления помогло включение в состав семейства Oracle СУБД Rdb 

в 

1996-1997 гг. Не забудьте, что оптимизатор
Rdb прошел многолетнюю школу исследований и практической работы и с го­дами стал напоминать мягкий и выдержанный вкус вина Каберне из долины На-па Вэлли. Опыт, мудрость и мужественность, принесенные оптимизатором Rdb

 в 

стоимостный оптимизатор Oracle, были просто невероятны, так что в Oracle 7.3 стоимостный оптимизатор Oracle начал новую жизнь. Это был практически совершенно новый продукт. Как будто в одну прекрасную ночь оптимизатор преобразился в невероятного сказочного красавца, умеющего выполнять мно­жество функций оптимизации. Это была сказочная метаморфоза.

Стоимостный оптимизатор взрослеет


С Oracle 7.3 началась поддержка возможности генерировать и хранить в ви-
де столбцов гистограммы (статистические функции, обеспечивавшие дискрети-
зацию и хранение распределений        Это стало новым шагом в развитии
стоимостного оптимизатора, так как теперь появилась возможность на основа-
нии хранящихся гистограмм точно определять распределение данных для
бого столбца. Конечно же, выяснилось, что равномерное распределение
данных не более чем красивая сказка.
Замечание
Применение гистограмм имеет смысл только для тех операторов SQL, где используются жестко закодированные значения, а не переменные связи. Новый взгляд на эту возможность появился в Oracle 8.1.6, где впервые появился и стал обязательным napaMeTpCURSORSHARING. Если в Oracle8i он установлен на FORCE, гистограммы не используются.

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

Установки параметров инициализации для использования оптимизатора Oracle
Параметр, который определяет выбор экземпляром Oracle одного из двух
режимов оптимизации - стоимостного или по системе правил, называется OPTIMIZERMODE. Значением по умолчанию этого параметра (если оно не указано в init.ora) является CHOOSE, что означает выбор стоимостного опти-. мизатора. При установке значения RULE пользователь выбирает оптимизацию
по системе правил. Возможны еще два значения этого параметра - .\LL_ROWS и FIRSTROWS, но мы настоятельно рекомендуем никогда не использовать эти значения в файле инициализации, поскольку они могут быть неприменимы к некоторым из ваших приложений.
Если необходимо воспользоваться функциональными возможностями
FIRST ROWS или ALL ROWS, можно воспользоваться установкой параметра
OPTIMIZER_MODE для сеанса или даже использовать подсказку        на
уровне оператора. Сначала мы покажем, как изменить значение OPTIMIZERMODE для сеанса:
ui SQbPiuS' Release 8.1.5.0.0 - Production on Fri       3 16:04:31 2000 (c) Copyright 1999 Oracle Corporation. All rights reserved. Connected to:
0racle8i Enterprise Edition Release 8.1.5.0.0 - Production
With the Partitioning and Java options
PL/SOL Release 8.1.5.0.0 - Production
SQL> alter session set 0PTIMIZER_M0DE=FIRST_R0WS /* Modifying 0PTIMIZER_M0DE just for this session */; Session altered.
 


регистрация организации







jAntivirus