Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Поведение запроса на разных серверах  [new]
Relogin
Member

Откуда: Abhasia
Сообщений: 594
Имеем запрос из трех таблиц.
На одном из серверов неэффективный план
Запрос с hint /*+ FIRST_ROWS*/
Данные на серверах одинаковы, индексы все одинаковы, статистика собрана по всем индексам
Требуется :
1)указать документацию, дать ссылки на то ПОЧЕМУ могут отличаться планы
дабы перечислитсь ВЕСЬ набор возможных причин. Очень желательно со ссылкой на документацию (например прада ли что данные могут быть разбросаны по винту в разные места - это тоже повлияло).
2)правда ли что first rows all_rows choose hint "плохие" и опять со ссылками на доку.
3)правда ли, что first rows старается использовать NL - опять же доку.
4)правда ли, что НЕТ открытой документации , чтобы понять КАК работает FIRST_ROWS, что вообще CBO оптимизатор работает как "черный ящик" - если есть информация на "да" или "нет" - дать ссылки на доки.
Тоесть четко хочется понять ЧТО из всего этого - закрытая инфа, что ИЗВЕСТНО и указано в доке, тоесть разобраться по всем вопросам.
Уф-фф плз.
30 авг 06, 19:20    [3073521]     Ответить | Цитировать Сообщить модератору
 Re: Поведение запроса на разных серверах  [new]
contr
Member

Откуда:
Сообщений: 1909
Relogin
1)указать документацию, дать ссылки на то ПОЧЕМУ могут отличаться планы дабы перечислитсь ВЕСЬ набор возможных причин. Очень желательно со ссылкой на документацию (например прада ли что данные могут быть разбросаны по винту в разные места - это тоже повлияло).
Ну чтож, это совсем другой разговор :)
Начнем.
1) Concepts
2) FAQ
3) http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html#addenda
4) http://www.evdbt.com/SearchIntelligenceCBO.doc
Пожалуй, для начала хватит :)
А так еще есть Кайт, Миллсап и целый http://www.oaktable.net
Relogin
2)правда ли что first rows all_rows choose hint "плохие" и опять со ссылками на доку.
Нет, неправда. Если бы они были "плохими", их бы просто не было в Oracle.
Relogin
3)правда ли, что first rows старается использовать NL - опять же доку.
Дока выше. Концепции. Understanding Joins. NL - наиболее очевидный кандидат на First_Rows ввиду особенностей своей работы. В некоторых случаях в данной роли можно представить SortMerge, но на практике я пока не встречал.
Надо также понимать, что если у Вас в запросе присутствуют функции агрегатные функции типа SUM, то никакой first_rows на них впчатления произвести просто не сможет :)
Relogin

4)правда ли, что НЕТ открытой документации , чтобы понять КАК работает FIRST_ROWS, что вообще CBO оптимизатор работает как "черный ящик" - если есть информация на "да" или "нет" - дать ссылки на доки.
Полуправда. С одной стороны, конкретные алгоритмы и даже точные формулы вычисления стоимости - секрет Oracle, в документации об этом написано весьма туманно. С другой - есть масса публикаций на эту тему. В конце концов, всякий "черный ящик" может быть исследован, что и происходит.
Relogin

Тоесть четко хочется понять ЧТО из всего этого - закрытая инфа, что ИЗВЕСТНО и указано в доке, тоесть разобраться по всем вопросам.
Уф-фф плз.

Можно, кстати, прошерстить форум в поисках постов Я и ёжик, в этом форуме данный автор дает одни из наиболее подробных ответов на околоCBOшные темы.
31 авг 06, 01:19    [3074296]     Ответить | Цитировать Сообщить модератору
 Re: Поведение запроса на разных серверах  [new]
contr
Member

Откуда:
Сообщений: 1909
Кстати, о hotsos - как я мог забыть...
31 авг 06, 01:36    [3074305]     Ответить | Цитировать Сообщить модератору
 Re: Поведение запроса на разных серверах  [new]
Relogin
Member

Откуда: Abhasia
Сообщений: 594
contr
Надо также понимать, что если у Вас в запросе присутствуют функции агрегатные функции типа SUM, то никакой first_rows на них впчатления произвести просто не сможет :)

Смотря, что вы понимаете под впечатлением.
Влияние - окажет и плна изменится. Хотя бы потому, что если на сервере по def установлен RULE, то для данного запроса примениттся CHOOSE верно?
31 авг 06, 10:18    [3074959]     Ответить | Цитировать Сообщить модератору
 Re: Поведение запроса на разных серверах  [new]
Relogin
Member

Откуда: Abhasia
Сообщений: 594
Relogin
contr
Надо также понимать, что если у Вас в запросе присутствуют функции агрегатные функции типа SUM, то никакой first_rows на них впчатления произвести просто не сможет :)

Смотря, что вы понимаете под впечатлением.
Влияние - окажет и плна изменится. Хотя бы потому, что если на сервере по def установлен RULE, то для данного запроса примениттся CHOOSE верно?

Даже скажу шире, что если по def в парамтерах сервера стоит RULE, то любой Hint, признанный оптимизатором валидным, попытается применить CBO, кроме hint RULE
31 авг 06, 10:22    [3074988]     Ответить | Цитировать Сообщить модератору
 Re: Поведение запроса на разных серверах  [new]
contr
Member

Откуда:
Сообщений: 1909
Relogin
Даже скажу шире

Вы, кажется, опять вместо изучения начинаете рассказывать какой Вы мастер?

Подсказка: речь не о том. Читаем про Understanding Joins
31 авг 06, 11:52    [3075748]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить