Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разный план выполнение запроса для разных пользователей / 25 сообщений из 33, страница 1 из 2
23.05.2019, 15:27
    #39817194
Зурбаган
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
База на Oracle 10g.
Имеются две одинаковые по структуре таблицы (индексы на поля тоже одинаковые). Эти таблицы через union all соединены во View.
Была создана третья таблица с такой же структурой и индексами и добавлена её во view.
После этого select по view у пользователя-создателя с правами администратора выполняется быстро.
У всех остальных пользователей - медленно.
Анализ плана показал, что в первом случае индексы применяются в поиске, во втором случае - идет full scan table.
Почему так?
...
Рейтинг: 0 / 0
23.05.2019, 15:31
    #39817195
jan2ary
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
У пользователей в их схемах объекты с идентичными названиями, поэтому запросы выглядят одинаково, а используют разные таблицы/индексы/представления. Например.
...
Рейтинг: 0 / 0
23.05.2019, 15:34
    #39817200
Vivat!San
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
ЗурбаганАнализ плана показал, что в первом случае индексы применяются в поиске, во втором случае - идет full scan table.
Почему так?

Планы выполнения может зависеть от окружения оптимизатора, смотреть и сравнивать.
...
Рейтинг: 0 / 0
23.05.2019, 15:35
    #39817203
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
jan2aryУ пользователей в их схемах объекты с идентичными названиями
Вот прям так взяли и разыменовались объекты, на которых базируется view, в локальные объекты других схем...
...
Рейтинг: 0 / 0
23.05.2019, 15:38
    #39817206
jan2ary
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
andrey_anonymousjan2aryУ пользователей в их схемах объекты с идентичными названиями
Вот прям так взяли и разыменовались объекты, на которых базируется view, в локальные объекты других схем...Да, надо читать внимательнее. Хотя еще есть шанс, что у них и вью тоже у каждого свое.
...
Рейтинг: 0 / 0
23.05.2019, 15:40
    #39817207
Зурбаган
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
Не... обращение идет к одним и тем же таблицам.
...
Рейтинг: 0 / 0
23.05.2019, 15:42
    #39817210
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
ЗурбаганНе... обращение идет к одним и тем же таблицам.
Снимаете 10053 в обоих случаях и сравнительно изучаете. Муторно, но надежно :)
...
Рейтинг: 0 / 0
23.05.2019, 15:44
    #39817215
witte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
Зурбаган,

А клиент при соединении одинаковый используется?
...
Рейтинг: 0 / 0
23.05.2019, 15:45
    #39817218
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
ЗурбаганНе... обращение идет к одним и тем же таблицам.
Это утверждение подкреплено проверкой?

select * from dba_objects where object_name = 'TABLE_NAME';
...
Рейтинг: 0 / 0
23.05.2019, 15:46
    #39817219
Зурбаган
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
witte,
Да, клиент одинаковый.
Единственное - доступ пользователям дается через роли. Grant select только на view, на таблицы во вью - нет. Но это не должно влиять.
...
Рейтинг: 0 / 0
23.05.2019, 16:08
    #39817230
Vivat!San
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
v$sys_optimizer_env

v$sess_optimizer_env
...
Рейтинг: 0 / 0
23.05.2019, 16:11
    #39817235
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
andrey_anonymousЗурбаганНе... обращение идет к одним и тем же таблицам.
Снимаете 10053 в обоих случаях и сравнительно изучаете. Муторно, но надежно :)+++
...
Рейтинг: 0 / 0
23.05.2019, 16:21
    #39817242
Зурбаган
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
xtender,
как я в трассировке узнаю почему не применяются индексы?
...
Рейтинг: 0 / 0
23.05.2019, 16:24
    #39817244
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
Зурбаганxtender,
как я в трассировке узнаю почему не применяются индексы?
ууу... Похоже, что в Вашем случае проще нанять специалиста.
...
Рейтинг: 0 / 0
23.05.2019, 16:33
    #39817256
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
Похоже, все исходят из того, что автор применяет одни и те же запросы от разных юзверей, хотя явно этого он и не обозначал. Возможно это так, но чтобы поверить в это, я прошу автора привести запросы и их планы от разных юзверей.
...
Рейтинг: 0 / 0
23.05.2019, 16:49
    #39817270
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
AmKad,

Да без разницы, 10053 на все ответит
...
Рейтинг: 0 / 0
23.05.2019, 21:03
    #39817364
AlexFF__|
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
xtender,

Или просто покажет, что в FINAL приходят разные запросы без всякого обоснования =()
...
Рейтинг: 0 / 0
23.05.2019, 21:26
    #39817367
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
AlexFF__|,

И покажет почему не выбран индексный доступ
...
Рейтинг: 0 / 0
24.05.2019, 05:28
    #39817429
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
Тоже мучился с подобными проблемами, но так и не смог победить.
У меня файл трассировки для 10053 не создается. Для 10046 - нормально.
Уже и alter session set events '10053 trace name context forever, level 1' делал. Пусто в udamp
...
Рейтинг: 0 / 0
24.05.2019, 07:28
    #39817442
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
ChukisПусто в udampПотому что даже в допотопном Oracle нет такой папки.
...
Рейтинг: 0 / 0
24.05.2019, 07:40
    #39817446
alex-ls
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
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
...
Рейтинг: 0 / 0
24.05.2019, 07:51
    #39817448
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
alex-ls,
это я знаю. Для 10046 это работает. Для 10053 - нет.
...
Рейтинг: 0 / 0
24.05.2019, 07:57
    #39817449
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
Chukis,

План то из кэша сначала вычистил?
...
Рейтинг: 0 / 0
24.05.2019, 09:21
    #39817473
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
ChukisДля 10053 - нет.
Для 10053 должен случиться hardparse.
Самый простой способ его обеспечить - поменять comment на таблице перед запуском запроса.
...
Рейтинг: 0 / 0
24.05.2019, 10:54
    #39817580
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разный план выполнение запроса для разных пользователей
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.
DECLARE
  name varchar2(50);
  version varchar2(3);
BEGIN
  select regexp_replace(version,'\..*') into version from v$instance;

  if version = '10' then
    execute immediate 
      q'[alter session set events '5614566 trace name context forever']'; -- bug fix for 10.2.0.4 backport
  end if;

  select address||','||hash_value into name
  from v$sqlarea 
  where sql_id like '&sql_id';

  sys.dbms_shared_pool.purge(name,'C',1);

END;
/

...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разный план выполнение запроса для разных пользователей / 25 сообщений из 33, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]