CftClub.ru
Клуб специалистов ЦФТ-Банк

HELP. Оптимизация запроса.

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
lil007
Участник


Вступление в Клуб: 12.01.2023
СообщениеСр Янв 24, 2024 07:15   HELP. Оптимизация запроса. Ответить с цитатой
Полезность: Нет оценки
Добрый день.
Подскажите, есть проблема что у пользователя долго открывается вьюха.

Мне сказали, что можно по ID сессии как-то подрубится, через девелопер к сессии и посмотреть план запроса (это если я правильно постановку вопроса понял).

Как это сделать?
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеСр Янв 24, 2024 09:51    Ответить с цитатой
Полезность: Нет оценки
Если проблема только у одного юзера - м.б. настройка Количество строк в запросе - любят юзеры большое кол-во строк настраивать
lil007
Участник


Вступление в Клуб: 12.01.2023
СообщениеСр Янв 24, 2024 20:24    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Если проблема только у одного юзера - м.б. настройка Количество строк в запросе - любят юзеры большое кол-во строк настраивать


Если и так. Вопрос темы не раскрыт.
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Янв 25, 2024 09:47    Ответить с цитатой
Полезность: Нет оценки
Select sql_id from v$sql
where sql_fulltext like '%Z#MAIN_DOCUM%';

Select * from v$sql_plan where sql_id='7ffjqc8yd0073'
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеВс Янв 28, 2024 10:51   Re: HELP. Оптимизация запроса. Ответить с цитатой
Полезность: Нет оценки
lil007 пишет:
Добрый день.
Подскажите, есть проблема что у пользователя долго открывается вьюха.

Мне сказали, что можно по ID сессии как-то подрубится, через девелопер к сессии и посмотреть план запроса (это если я правильно постановку вопроса понял).

Как это сделать?


Зачем так сложно.
План запроса смотрится при наличии самого запроса.
Пользователь заходит в предсталвение. Жмёт кнопку SQL. Вы смотрите текст запроса и значения bind-переменных. Затем смотрите план.
Либо: пользователь ждёт, вы находите сессию пользователя в сис.вьюшне v$session, начинаете снимать с этой сессии трейс, командуете пользователю зайти во вьюшку, когда зайдёт - выключаете трассировку, разбираете, смотрите.
pabrz
Участник со стажем


Вступление в Клуб: 27.09.2022
СообщениеЧт Фев 01, 2024 04:31    Ответить с цитатой
Полезность: Нет оценки
Обратите внимание на фильтры.

Последняя опция коллег из ЦФТ на эту тему была связана с тем, что при обращении к представлению через фильтр заполнялась служебная таблица.
По каждому пользователю.
Каждый раз.

Почему это делается?
Потому что блок where теперь не умеет в функции.

Поэтому гениальное решение: в фильтре сделать заполнение служебной таблицы, с которой потом делаем join и получаем отфильтрованные данные.

Решение, мягко говоря, спорное. Smile Посмотрите свой случай на подобный феномен.
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеПт Фев 02, 2024 14:03    Ответить с цитатой
Полезность: Нет оценки
pabrz пишет:
Обратите внимание на фильтры.

Последняя опция коллег из ЦФТ на эту тему была связана с тем, что при обращении к представлению через фильтр заполнялась служебная таблица.
По каждому пользователю.
Каждый раз.

Почему это делается?
Потому что блок where теперь не умеет в функции.

Поэтому гениальное решение: в фильтре сделать заполнение служебной таблицы, с которой потом делаем join и получаем отфильтрованные данные.

Решение, мягко говоря, спорное. Smile Посмотрите свой случай на подобный феномен.


Конечно, спорное. а как вы выкручиваетесь? а то у меня ещё дофига представлений переделывать...
pabrz
Участник со стажем


Вступление в Клуб: 27.09.2022
СообщениеПн Фев 05, 2024 01:33    Ответить с цитатой
Полезность: Нет оценки
Пока в большинстве случаев так и делаем: рефакторинг функций и перевод в sql. Иногда для сокращение объема через макросы, но это только визуальное сокращение - де факто объем будет тот же, так что всегда есть шанс перешагнуть лимит объема текста представления.
Есть еще мысль делать представление с колонками-функциями, а потом второе селектом из нее, но не пробовал пока, есть ненулевой шанс, что не сработает, то же самое касается функциональных реквизитов.

Куда больше жаль сложные конструкции, вроде трехмерных представлений (инструкция model), которые, очевидно, перестанут поддерживаться полностью. Postgree в них не умеет. Вот их заменить просто нечем.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru