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

Откуда: Казань
Сообщений: 371
Есть проблемый запрос, который на qa базе выполняется бесконечное количество времени, на продакшне около часа.
Решил первым делом воспроизвезти проблему - выполнилось менее чем за полторы минуты. попросил администратора приложений запустить из приложения - висит уже больше 2 часов, и конца и края не видно. при этом я выдернул запрос из v$sql, и без лишних пробелов и все выполяю в тоаде.
стоимость планов соответственно 1800 и 46000 для хорошего и плохого запроса. при этом парсинг схема, запросы и все совпадает.
версия 10.2.0.4
7 ноя 12, 18:29    [13435318]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
нашел отличие в v$sql для этих двух запросов. object_status для быстрого - валид, для медленного invalid_unauth
пойду читать что это
7 ноя 12, 18:33    [13435342]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
пофлушил шаред пул, перезапустил из обоих приложений. картина таже:
67643870 - цена медленного запроса
и 1600 - быстрого
7 ноя 12, 19:54    [13435756]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Серафимный Шестикрыл
Member [заблокирован]

Откуда: С луны свалился
Сообщений: 2922
>>все совпадает

Прям уж так и все ?
И планы выполнения ? И trace 10046 / 10053 ? И реальная статистика выполнения запроса ?
7 ноя 12, 20:25    [13435859]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
планы выполнения разные, трейсы разумеется тоже. вопрос почему оракль считает один и тот же запрос, с точностью до символа за разные?
8 ноя 12, 12:08    [13438556]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
ten
Member

Откуда: Екатеринбург
Сообщений: 1672
Reylonds,
Из-за окружения
8 ноя 12, 12:10    [13438576]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
сейчас я вышложу пару страничек, чтобы нагляднее было. там нет переменных, схема выполнения та же. единственное юзер.
alter session set различные параметры оно не выполняет(приложение).
8 ноя 12, 12:25    [13438720]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
fgac отсутствует? неявных преобразований типов нет?
8 ноя 12, 12:29    [13438753]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
забавно, из нагугленого

on 11g, the v$sql does show the invalidated cursor with the object_status column value “INVALID_UNAUTH”.
8 ноя 12, 12:33    [13438775]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
Reylonds,

По зависимым объектам изменения были?
8 ноя 12, 12:39    [13438822]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
fgac'а нет, насчет неявных преобразований не проверял еще, посмотрю.
прикладываю пару файлов в архиве с планами выполнения.

К сообщению приложен файл (query.zip - 125Kb) cкачать
8 ноя 12, 12:41    [13438841]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
env,

после очистки шаред пула, “INVALID_UNAUTH” сменился на нормальный валид.
8 ноя 12, 12:42    [13438862]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
изменений нет, из тоада и sql plus быстро, из siebel - бесконечно. вернее в плане нарисовано что то типа 220+ часов.
вот прямо щас одновременно выполяются.
8 ноя 12, 12:44    [13438893]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
Reylonds,

SQL Profile "SYS_SQLPROF_014eb6c8d5e04001" was used for this statement
8 ноя 12, 13:12    [13439151]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
без него тоже самое. поставил - он цепляется к обоим запросам, значит оракл таки видит что это один и тот же запрос.
8 ноя 12, 13:14    [13439170]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
aamazur
Member

Откуда: CA
Сообщений: 438
Reylonds
сейчас я вышложу пару страничек, чтобы нагляднее было. там нет переменных, схема выполнения та же. единственное юзер.
alter session set различные параметры оно не выполняет(приложение).

Siebel выполняет свои alter session.

alter session set optimizer_mode = first_rows_10;
alter session set "_optimizer_sortmerge_join_enabled" = false;
alter session set "_optimizer_join_sel_sanity_check" = true;

убедись в трейсе 10053.
8 ноя 12, 13:33    [13439332]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
как раз в процессе переговоров с админами сайбела чтобы оттрассировать сессию.
8 ноя 12, 13:43    [13439459]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
Там по-моему даже в v$sql_optimizer_env разница видна от alter session от siebel.
8 ноя 12, 14:18    [13439784]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
трейс сделал, альтеров не видно. возможно использовалась не новая сессия, надо триггер на логон повесить.
спасибо, сейчас посмотрю в указанной вьюхе.
8 ноя 12, 14:23    [13439831]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
Reylonds
трейс сделал, альтеров не видно.
у вас же пул скорее всего. не надо триггеров, смотрите 10053
8 ноя 12, 14:26    [13439850]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
Вот недефолтные параметры в сессии. собественно, а что они хотели. всем спасибы за участие.

NAME VALUE

optimizer_mode_hinted true
_optimizer_max_permutations 100
_pga_max_size 2048000 KB
sqlstat_enabled true
_hash_join_enabled false
_b_tree_bitmap_plans false
_no_or_expansion true
optimizer_index_cost_adj 10
_like_with_bind_as_equality true
_new_initial_join_orders false
_optimizer_sortmerge_join_enabled false
8 ноя 12, 14:28    [13439869]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
Reylonds
без него тоже самое. поставил - он цепляется к обоим запросам, значит оракл таки видит что это один и тот же запрос.
надо было профиль поставить с аутлайнами от "хорошего" запроса. а "видит что это один и тот же запрос" потому что force_match=true
8 ноя 12, 14:29    [13439878]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
Reylonds
Member

Откуда: Казань
Сообщений: 371
хотя нет, в моей сесси тоже самое. похоже отличия от дефолтных вообще показываются
8 ноя 12, 14:33    [13439910]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
с включенным hash join и без кривого optimizer_index_cost_adj оно вообще полетит.
8 ноя 12, 14:33    [13439912]     Ответить | Цитировать Сообщить модератору
 Re: разные sql_id для одного запроса  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
Но надо сравнить еще данные по двум запросам. alter session я точно помню.
8 ноя 12, 14:35    [13439940]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить