Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
22.02.2022, 16:58
|
|||
---|---|---|---|
запрос из приложения vs запрос из IDE |
|||
#18+
Всем привет. Вопрос может и ламеркий, но все же. Столкнулся с такой ситуацией, что один и тот же запрос запущенный из бизнес-приложения и SQL Developer'a работает по разному (разный план, разное время выполнения). Запрос срейдний с некоторым количеством скаляров в условиях фильтрации. Порядок тестирования таков: 1. Выполняют определенные действия в приложении, чтобы выполнить запрос. Приложение виснет. 2. В gv$session ищу сессию и SQL_ID (Oracle RAC). Запрос в представлении с замененными скалярами на бинды, так как cursor_sharing=FORCE. 3. Выполняю найденный запрос из SQL Developer'a, затолкав его в REF курсор с подставлением биндов. Запрос работает молниеносно. Собственно вопрос, почему из IDE запрос может идти по другому плану, хотя ничего не меняется? И второй вопрос, как выполнить запрос из IDE так, чтобы он работал также долго? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:05
|
|||
---|---|---|---|
запрос из приложения vs запрос из IDE |
|||
#18+
Из того что сделал я: 1. Пересобрал статистику. 2. Проверил параметры оптимизатора (gv$sql_optimizer_env) у запроса из IDE и из приложения - одинаковые. 3. сравнил на всякий случай параметры инстансов - одинаковые. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:27
|
|||
---|---|---|---|
запрос из приложения vs запрос из IDE |
|||
#18+
mlc, 4. Протри монитор чистой тряпочкой 5. Приведи запросы и планы 6. Если запросы имеют один и тот же sql_id => gv$sql_shared_cursor ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:28
|
|||
---|---|---|---|
запрос из приложения vs запрос из IDE |
|||
#18+
хотя ничего не меняется? :1, 123, '123' - это можно счесть "ничего не меняется", но меняется. Запрос в представлении с замененными скалярами на бинды Сделайте пример запроса, и покажите, что на что меняете. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:31
|
|||
---|---|---|---|
запрос из приложения vs запрос из IDE |
|||
#18+
dmdmdm, я ничего не меняю. Скаляры меняются на бинды из-за cursor_sharing=force. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:35
|
|||
---|---|---|---|
запрос из приложения vs запрос из IDE |
|||
#18+
AlexFF__, 4. Спасибо, протёр. 5. Что вам даст запрос из неизвестных вам таблиц? Почему запрос из приложения тормозит я и сам понимаю. Меня интересует почему он может не тормозить из IDE. 6. Сюда ещё на заглядывал, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:38
|
|||
---|---|---|---|
запрос из приложения vs запрос из IDE |
|||
#18+
mlc 5. Что вам даст запрос из неизвестных вам таблиц? Почему запрос из приложения тормозит я и сам понимаю. Меня интересует почему он может не тормозить из IDE Делаешь trace 10053 и не гадаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:40
|
|||
---|---|---|---|
запрос из приложения vs запрос из IDE |
|||
#18+
mlc AlexFF__, 6. Сюда ещё на заглядывал, спасибо. Запрос будет иметь в любом случае другой sql_id, так как мне приходится дописывать схему к объектам. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:43
|
|||
---|---|---|---|
запрос из приложения vs запрос из IDE |
|||
#18+
AlexFF__| mlc 5. Что вам даст запрос из неизвестных вам таблиц? Почему запрос из приложения тормозит я и сам понимаю. Меня интересует почему он может не тормозить из IDE Делаешь trace 10053 и не гадаешь. как выполнить 10053 трассу сессии приложения? Через dbms_system.set_ev? Сессия открывается непосредственно перед выполнением SQL запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:50
|
|||
---|---|---|---|
|
|||
запрос из приложения vs запрос из IDE |
|||
#18+
mlc AlexFF__| пропущено... Делаешь trace 10053 и не гадаешь. как выполнить 10053 трассу сессии приложения? Через bms_system.set_ev? Сессия открывается непосредственно перед выполнением SQL запроса. http://orasql.org/2021/05/20/oracle-diagnostic-events-cheat-sheet/ Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:50
|
|||
---|---|---|---|
запрос из приложения vs запрос из IDE |
|||
#18+
mlc как выполнить 10053 трассу сессии приложения? Через dbms_system.set_ev? Сессия открывается непосредственно перед выполнением SQL запроса. alter session set events '10053 trace name context forever, level 1'; ................. alter session set events '10053 trace name context off'; Если запрос уже распарсен, что чуда не будет, удали запрос из shared_pool ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2022, 17:51
|
|||
---|---|---|---|
|
|||
запрос из приложения vs запрос из IDE |
|||
#18+
mlc И второй вопрос, как выполнить запрос из IDE так, чтобы он работал также долго? mlc Запрос будет иметь в любом случае другой sql_id, так как мне приходится дописывать схему к объектам. сделайте alter session set current_schema и запускайте запрос as-is с литералами ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&mobile=1&tid=1879489]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 375ms |
0 / 0 |