DeepEdit!

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

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

Что такое "подсказка?

Объяснить, что такое "подсказка", очень легко. Вспомните, когда вы были ре­бенком, приближался ваш день рождения, и вам 

очень 

хотелось получить новень­кий велосипед или замечательную роликовую доску (а сейчас, кстати, не хочется ли получить эти чудесные роликовые коньки)? Вы, конечно, шли пря­миком к родителям, но не просили у них в подарок эти штуки (нет, кто был по-храбрее, может быть и просили). Вместо этого вы начинали говорить им что-то вроде: "Ой, у меня начали болеть ноги от моей старой доски" или "Мамочка, ког­да я сажусь на велосипед, я упираюсь коленками в руль, а ноги у меня цепляются за землю". Вы подкидывали родителям такие миленькие, но сильные ки. И если родители были такими же умными, как Oracle, они обязательно при­слушивались к вашим пожеланиям (т. е. к подсказкам) и в большинстве случаев были уверены, что это именно им удалось сделать своих детей счастливыми.
Поверите вы или нет, но точно так же работает и оптимизатор Oracle, когда пользователь включает в оператор SQL подсказку 

/!:,~>/п>и*/. 

Обратите внима­ние, что за одним небольшим исключением (знак + после /*) подсказка выгля­дит очень похоже на обычный комментарий. Очень важно, чтобы пользователь поместил подсказку в нужное место оператора SQL, чтобы оптимизатор Oracle смог его распознать. В идеале, она должна быть размещена до упоминания в опе­раторе SQL первого имени столбца.
В следующем примере показано, как встроить в оператор SQL подсказку 

{/*+hint*/)\

□ SOL.Plus: Release 8.1.5.0.0 - Production on Fri Nov 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/SQL Release 8.1.5.0.0 - Production
select /*+ FIRST_ROWS */ Last_Name,  Hire_0ate,  Salary
from EMP
where Mgr_id = 123;

Замечание
Если окажется, что задана неправильная подсказка, оптимизатор проигнорирует ее, так же, как это делали когда-то родители, если вы просили у них что-то совершенно невообразимое. Оптимизатор не уведомляет о том, что сделанная подсказка является недопустимой, потому что такая подсказка интерпретируется просто как комментарий. Это на нас как на лица, заботящиеся о производительности системы, ложится ответственность за проверку плана выполнения оператора SQL. Это мы должны были убедиться, что подсказка воспринята правильно и соответствующим образом обработана.


Можно определить множество подсказок для контроля плана выполнения, который оптимизатор строит для операторов SQL. Полный перечень подска-_ зок и их расшифровок находится в разделе "Настройка Oracle8i" документации по Oracle (преимущественно в электронном виде), поставляемой вместе с про­граммным обеспечением Oracle. Если вы работаете не с Oracle8i, обратитесь к соответствующему разделу по настройке вашей версии базы данных Oracle.
 


хостинг сайтов ru . Интеллектуальные игры для детей учат различать формы. Рисуем с фантазией.







jAntivirus