![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
/*+RULE*/
/*+ULE*/ /*+LAST*/ В чем разница ???? Может еще какие есть ??? -------------------- Praemonitus, praemunitus |
|||
|
||||
igon |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Да, и очень много. Ищи в документации по ключевому слову hints
Для 9.01 таких хинтов нет -------------------- Хотите поговорить об этом? |
||||
|
|||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 1 Всего: 118 |
Эти подсказки определяют оптимизацию запроса. Т.е. можно оптимизироватьтак, чтобы первая строка была выдана как можно быстрее. Можно попросить, чтобы весь запрос выполнялся и только после этого показывался. И прочая, и прочая, и прочая.
|
|||
|
||||
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Да на англицком я нашел ....
А по русски сложновато понять .... Вот я и попросил, если кто может, чтобы написали .... -------------------- Praemonitus, praemunitus |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 1 Всего: 118 |
А ты брось на аглицком - мы тут и переведем
![]() |
|||
|
||||
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Все перевести - это слишком нагло. Какие тут основные ???? -------------------- Praemonitus, praemunitus |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 1 Всего: 118 |
Ну вот для начала. Я не гарантирую, что точно понял логику. Перевестимогу, но смыловая часть не всегда ясна
/*+ ALL_ROWS */ - сделать так, чтобы оптимально выдать все столбцы с минимумом ресурсов /*+ CHOOSE */ - настраивать запрос к таблице на основе статистики всех предыдущих запросов к этой таблице /*+ FIRST_ROWS */ - настроить запрос так, что бы было минимальное время отклика. Т.е. первая строка должна быть получена как можно быстрее. /*+ RULE */ - оптимизировать в плане блокировки. Точно не знаю, но думаю, что имеется в виду блокировка таблицы /*+ AND_EQUAL(table index) */ - оптимизируется для работы с индексом /*+ CLUSTER(table) */ - выбирается кластерное сканирование таблицы. Т.е. таблица может быть разбита на части (кластеры) и запрос оптимизируется так, что мжет быть можно обойтись сканированием не всей таблицы а только одного кластера. /*+ FULL(table) */ - сканировать целиком всю таблицу /*+ HASH(table) */ - сканирование по хэш-коду. Как это понять - не знаю. Видимо что-то Оракл может хэшировать. /*+ NO_INDEX(table index) */ - не использовать указанный индекс. |
|||
|
||||
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
AntonSaburov
Спасибо ..... Жду продолжения с большим нетерпением -------------------- Praemonitus, praemunitus |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 1 Всего: 118 |
/*+ HASH_AJ(table) */ - преобразует форму NOT IN в хэш анти-джойн (не понял я этого термина) Джойн - соединение таблиц, а здесь получается, что будет наверно подзапрос. Может быть Оракл при джойне использует хэши. И тут говорят, чтобы он этого не делал
/*+ HASH_SJ(table) */ - а тут уэе о полу-джойне идет речь для NOT IN. Даже не знаю о чем это /*+ INDEX(table index) */ - использовать конкретный индекс. Оптимизатор не всегда это делает хорошо план запроса и может выбрать неудачный индекс. И надо указывать конкретный индекс. /*+ INDEX_ASC(table index) */ - использовать индекс с возрастанием (см. предыдущий коментарий) /*+ INDEX_COMBINE(table index) */ Здесь просто перевод. Если не даны индексы в качесвеаргументов для INDEX_COMBINE то оптимизатор использует какую-либо комбинацию булевую битовых индексов для получения лучшей стоимости запроса. Если индексы даны, то оптимизатор использует булевую комбинацию указанных битовых индексов. Не понял я тут что-то ничего. /*+ INDEX_DESC(table index) */ - использовать индекс с убыванием /*+ INDEX_FFS(table index) */ Использовать сканирование индекса а не сканирование всей таблицы. Может такая штука может быть использована в тех случаях, когда выборка идет по столбцу, который имеет индекс и тогда проще и дешевле пробежать только по индексу. /*+ MERGE_AJ(table) */ - трансформирует NOT IN в слияние анти-джойн для доступа к таблице (не понял. о чем) /*+ MERGE_SJ(table) */ - трансформирует EXISTS в слияние полу-джойн при доступе к таблице (тоже мне не понятно) /*+ NO_EXPAND */ Предохраняет оптимизатор для условия OR использовать OR или IN в части WHERE. Не понял. |
|||
|
||||
igon |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
-------------------- Хотите поговорить об этом? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Oracle" | |
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Oracle | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |