Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 система на основе RBO, 1 запрос - разное поведение  [new]
Статист
Guest
Итак система мигрировала с 8-ки на 9-ку, основана на RBO, и вот нашелсмя один заковыристый запрос, который, если не собрать статистику по схемам - работать из клиентского приложения напрочь отказывается

Результат трасировки этого запроса без статистики:

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.01       0.01          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        5     80.31      84.90          0    7176503          0         212
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        7     80.32      84.91          0    7176503          0         212

Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 27  

Результат трасировки этого запроса с собранной статистикой:

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.03       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        3      0.01       0.10        792       1059          0          21
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        5      0.04       0.10        792       1059          0          21

Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 27  

Разница офигенная!!!!
Но!!! Где-то тут прочел, что вот так запросто переводить на рабочей ситстеме стрелки с РБО на СБО (собрал статистику = заставил оптимизитор работать по стоимостному режиму) = нажить себе геморрой немалый.....
Хотя система после сбора ститистики заработала куда быстрей
13 мар 07, 15:36    [3892796]     Ответить | Цитировать Сообщить модератору
 Re: система на основе RBO, 1 запрос - разное поведение  [new]
evostr
Member

Откуда: Екатеринбург
Сообщений: 1278
А вопрос то в чем?
13 мар 07, 15:38    [3892812]     Ответить | Цитировать Сообщить модератору
 Re: система на основе RBO, 1 запрос - разное поведение  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3909
Что-то не похоже, что была выполнена одинаковая работа:) В первом случае извлечено 212 строк, во втором в 10 раз меньше:)
13 мар 07, 15:43    [3892851]     Ответить | Цитировать Сообщить модератору
 Re: система на основе RBO, 1 запрос - разное поведение  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3909
Но это, собственно неважно, важно другое: как сказал предыдущий оратор, в чем вопрос то?:)
-------------------------------------------------------
Автор благодарит алфавит за любезно предоставленные ему буквы.
13 мар 07, 15:46    [3892880]     Ответить | Цитировать Сообщить модератору
 Re: система на основе RBO, 1 запрос - разное поведение  [new]
Александр Соколов
Member

Откуда: Протвино
Сообщений: 1419
Статист
Где-то тут прочел, что вот так запросто переводить на рабочей ситстеме стрелки с РБО на СБО (собрал статистику = заставил оптимизитор работать по стоимостному режиму) = нажить себе геморрой немалый.....

Working Around the Rule-Based Optimizer Using Stored Outlines by Rick Minutella
13 мар 07, 16:23    [3893160]     Ответить | Цитировать Сообщить модератору
 Re: система на основе RBO, 1 запрос - разное поведение  [new]
Статист
Guest
Операции с точки зрения клиентского приложения были выполнены одинаковые - нажата одна и та же педаль
В первом случае приложение просто зависло....

Вопрос в том =
автор
Где-то тут прочел, что вот так запросто переводить на рабочей ситстеме стрелки с РБО на СБО (собрал статистику = заставил оптимизитор работать по стоимостному режиму) = нажить себе геморрой немалый.....

Так ли это, и, если система после сбора статистики заработала лучше - значит ли это, что процитированное выше утверждение есть не совсем правда?
13 мар 07, 16:25    [3893178]     Ответить | Цитировать Сообщить модератору
 Re: система на основе RBO, 1 запрос - разное поведение  [new]
Статист
Guest
Apex
Что-то не похоже, что была выполнена одинаковая работа:) В первом случае извлечено 212 строк, во втором в 10 раз меньше:)


ИМХО 212 вместо верных 21 = селект сложный - несколько вложений, видимо до "зависания" приложения выполнилась некая часть селекта, резалт которой затем постепенно усекается, но, так как приложение
1 - зависло
2 - селект не есть часть ХП и посылается непосредственно с клиентской машины
смею предположить, что дальнейшее выполнение запроса просто прекратилось....

Александр Соколов
Статист
Где-то тут прочел, что вот так запросто переводить на рабочей ситстеме стрелки с РБО на СБО (собрал статистику = заставил оптимизитор работать по стоимостному режиму) = нажить себе геморрой немалый.....

Working Around the Rule-Based Optimizer Using Stored Outlines by Rick Minutella


Как раз мой случай:

For the second situation, optimizer_mode = CHOOSE with no statistics on the schema objects, testing performance with the CBO can be a little more difficult.  The reason is that you likely cannot simply go out and start collecting statistics on the production database schema objects.  If you start to do this, the execution plans in production will start switching to the COST based mode and this may be problematic.

не зная о проблематичности сего подхода я просто собрал статистику и.. система заработала лучше, если бы случились тормоза.. много тормозов в других местах - статистика бы была попросту DELETE, и все ИМХО вернулось бы на свои места.....
13 мар 07, 16:35    [3893248]     Ответить | Цитировать Сообщить модератору
 Re: система на основе RBO, 1 запрос - разное поведение  [new]
Andrew Max
Member

Откуда:
Сообщений: 1045
Статист
Где-то тут прочел, что вот так запросто переводить на рабочей системе стрелки с РБО на СБО ... = нажить себе геморрой немалый
...
Так ли это, и, если система после сбора статистики заработала лучше - значит ли это, что процитированное выше утверждение есть не совсем правда?

Не знаю, где именно Вы это прочитали, но, IMHO, мысль выражена не совсем корректно. Я бы выразился так:
автор
... вот так запросто переводить на рабочей системе стрелки с РБО на СБО ... = некоторый риск нажить себе указанное заболевание

Причем степень риска определяется многими факторами.

Конечно, все определяется тем, насколько ваша система business-critical, но лично я не рискнул бы собирать статистику на production-системе вслепую (т.е. не зная ее специфики и не владея информацией о том, какие типичные запросы выполняются в системе).
13 мар 07, 17:15    [3893561]     Ответить | Цитировать Сообщить модератору
 Re: система на основе RBO, 1 запрос - разное поведение  [new]
Статист
Guest
Andrew Max

но лично я не рискнул бы собирать статистику на production-системе вслепую (т.е. не зная ее специфики и не владея информацией о том, какие типичные запросы выполняются в системе).


понятно, спасибо.. выходит мне просто повезло - я рискнул и не проиграл
13 мар 07, 17:55    [3893892]     Ответить | Цитировать Сообщить модератору
 Re: система на основе RBO, 1 запрос - разное поведение  [new]
Статист
Guest
а может неверно высказался.. ведь перед тем как собрать статистику на продакшене я ее на тестовом серваке собрал.. и потыкался по клиенстким приложениям, дабы убедиться, что оно работает
13 мар 07, 17:56    [3893896]     Ответить | Цитировать Сообщить модератору
 Re: система на основе RBO, 1 запрос - разное поведение  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
Еще фишка -- при использовании некоторых новых фич (partitioning, IOT и.т.д) всегда применяется CBO не зависимо от настроек оптимизатора
А для него статистика важна, иначе он использует дефолтовую
14 мар 07, 01:28    [3895144]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить