|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
База на Oracle 10g. Имеются две одинаковые по структуре таблицы (индексы на поля тоже одинаковые). Эти таблицы через union all соединены во View. Была создана третья таблица с такой же структурой и индексами и добавлена её во view. После этого select по view у пользователя-создателя с правами администратора выполняется быстро. У всех остальных пользователей - медленно. Анализ плана показал, что в первом случае индексы применяются в поиске, во втором случае - идет full scan table. Почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:27 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
У пользователей в их схемах объекты с идентичными названиями, поэтому запросы выглядят одинаково, а используют разные таблицы/индексы/представления. Например. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:31 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
ЗурбаганАнализ плана показал, что в первом случае индексы применяются в поиске, во втором случае - идет full scan table. Почему так? Планы выполнения может зависеть от окружения оптимизатора, смотреть и сравнивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:34 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
jan2aryУ пользователей в их схемах объекты с идентичными названиями Вот прям так взяли и разыменовались объекты, на которых базируется view, в локальные объекты других схем... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:35 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
andrey_anonymousjan2aryУ пользователей в их схемах объекты с идентичными названиями Вот прям так взяли и разыменовались объекты, на которых базируется view, в локальные объекты других схем...Да, надо читать внимательнее. Хотя еще есть шанс, что у них и вью тоже у каждого свое. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:38 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
Не... обращение идет к одним и тем же таблицам. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:40 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
ЗурбаганНе... обращение идет к одним и тем же таблицам. Снимаете 10053 в обоих случаях и сравнительно изучаете. Муторно, но надежно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:42 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
Зурбаган, А клиент при соединении одинаковый используется? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:44 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
ЗурбаганНе... обращение идет к одним и тем же таблицам. Это утверждение подкреплено проверкой? select * from dba_objects where object_name = 'TABLE_NAME'; ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:45 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
witte, Да, клиент одинаковый. Единственное - доступ пользователям дается через роли. Grant select только на view, на таблицы во вью - нет. Но это не должно влиять. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:46 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
v$sys_optimizer_env v$sess_optimizer_env ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 16:08 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
andrey_anonymousЗурбаганНе... обращение идет к одним и тем же таблицам. Снимаете 10053 в обоих случаях и сравнительно изучаете. Муторно, но надежно :)+++ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 16:11 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
xtender, как я в трассировке узнаю почему не применяются индексы? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 16:21 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
Зурбаганxtender, как я в трассировке узнаю почему не применяются индексы? ууу... Похоже, что в Вашем случае проще нанять специалиста. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 16:24 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
Похоже, все исходят из того, что автор применяет одни и те же запросы от разных юзверей, хотя явно этого он и не обозначал. Возможно это так, но чтобы поверить в это, я прошу автора привести запросы и их планы от разных юзверей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 16:33 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
AmKad, Да без разницы, 10053 на все ответит ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 16:49 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
xtender, Или просто покажет, что в FINAL приходят разные запросы без всякого обоснования =() ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 21:03 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
AlexFF__|, И покажет почему не выбран индексный доступ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 21:26 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
Тоже мучился с подобными проблемами, но так и не смог победить. У меня файл трассировки для 10053 не создается. Для 10046 - нормально. Уже и alter session set events '10053 trace name context forever, level 1' делал. Пусто в udamp ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 05:28 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
ChukisПусто в udampПотому что даже в допотопном Oracle нет такой папки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 07:28 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
ChukisТоже мучился с подобными проблемами, но так и не смог победить. У меня файл трассировки для 10053 не создается. Для 10046 - нормально. Уже и alter session set events '10053 trace name context forever, level 1' делал. Пусто в udamp http://www.sql.ru/faq/faq_topic.aspx?fid=389 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 07:40 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
alex-ls, это я знаю. Для 10046 это работает. Для 10053 - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 07:51 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
Chukis, План то из кэша сначала вычистил? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 07:57 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
ChukisДля 10053 - нет. Для 10053 должен случиться hardparse. Самый простой способ его обеспечить - поменять comment на таблице перед запуском запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 09:21 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
andrey_anonymousСамый простой способ его обеспечить - поменять comment на таблице перед запуском запроса.уже не работает этот способ - комменты не инвалидируют курсоры :) сброс по sql_id: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 10:54 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
xtenderуже не работает этот способ - комменты не инвалидируют курсоры С какой версии? В 12 вроде как прокатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 12:34 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
Во-первых, автор обозначил версию 10g. Во-вторых, для черезпоздних версий: 225598.1Starting in 11g Release 2, you can use this to generate an Optimizer trace for any SQL statement in the cursor cache without having to execute it. The DBMS_SQLDIAG package has been extended to include a procedure called DUMP_TRACE. This procedure, just requires SQL_ID of the statement you wish to generate an Optimizer trace for but it doesn’t require you to re-execute the statement. The procedure will automatically trigger a hard parse of the statement to generate the trace. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 13:05 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
andrey_anonymous, 18 под рукой прямо сейчас нет, но в 19 уже точно не инвалидирует: test Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
19.3 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 13:05 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
-2-, на версию я не обратил внимания. 10 сейчас это, конечно, жесть... а насчет 225598.1The DBMS_SQLDIAG package has been extended to include a procedure called DUMP_TRACE.наигрался я в свое время с этим, и нарывался несколько раз на то, что при его вызове иногда строятся совсем другие планы. в итоге пришел к выводу, что лучше включить ивент трейс rdbms.SQL_Optimizer.* на конкретный sql_id и флашануть его план ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 13:11 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
225598.1The DBMS_SQLDIAG package has been extended to include a procedure called DUMP_TRACE Bug 23184272 : DBMS_SQLDIAG.DUMP_TRACE USE INVOKER CBO ENV INSTEAD OF CHILD CURSOR Bug 18195633 : DBMS_SQLDIAG.DUMP_TRACE DOES NOT SHOW EXECUTION PLAN OF CARDINALITY FEEDBACK ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 13:18 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
Что интересно - если пользователю дать админские права, то запросы по вью отрабатыватся быстро. Попробовал сделать во вью конструкцию: select * from ( select * from table1 union all select * from table2 union all select * from table3) и под под простыми пользователями запросы стали отрабатываться нормально. Костыль, конечно, но терпимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 15:32 |
|
Разный план выполнение запроса для разных пользователей
|
|||
---|---|---|---|
#18+
ЗурбаганЧто интересно Продолжайте наблюдение. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 17:11 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1882470]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
68ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
others: | 296ms |
total: | 484ms |
0 / 0 |