![]() |
|
Модераторы: LSD |
![]()
|
|
| blur |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 9.11.2004 Репутация: нет Всего: 1 |
Подскажите, как в Oracle лучше записывать условия: в секции джойнов (при связке таблиц), либо после джойнов (в разделе where) ?
|
|||
|
||||
| Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: 13 Всего: 13 |
Нотация роли не играет, оптимизатор приводит вс запросы к едином оптимальному (по его мнению) виду.
-------------------- It's better to burn out than to fade away. |
|||
|
||||
| blur |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 9.11.2004 Репутация: нет Всего: 1 |
Спасибо, тогда еще такой вопрос: имеет ли значение порядок связки таблиц? Например, сначала связывать небольшие таблицы, потом побольше и т.д.
|
|||
|
||||
| Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: 13 Всего: 13 |
Порядок соединения (access order) является одним из базовых понятий в теории SQL тюнинга. Он имеет очень большое значение. Прежде всего здесь играет роль не размер таблиц а селективность выборки из этой таблицы. Чем более эффективен для заданной таблицы фильтр, который указывается в условиях WHERE, тем меньше строк из нее выберется. Таблицы следует соединять в порядке убывания селективности, то есть, чтобы сначала срабатывали самые эффективные фильтры.
Порядок соединения обеспечивается либо: 1) подсказкой оптимизатору /*+ORDERED*/ В данном случае оптимизатор постарается извлечь данные из таблиу именно в том порядке, в котором они перечислены в предложении FROM. Если, учитывая все условия запроса, данный путь доступа будет недоступен, подсказзка будет проигнорирована. 2) С помощью ANSI нотации, то есть (table1 JOIN table1 on () JOIN table3...) и т.д -------------------- It's better to burn out than to fade away. |
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |