powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Экспоненциальный рост времени выполнения отчета
8 сообщений из 33, страница 2 из 2
Экспоненциальный рост времени выполнения отчета
    #39453893
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DshedooAntSol,

1) В with'е сразу определи nvl(ms.card_series, ms.new_card_series), причём лучше через case.

2) В with'e условие
Код: plsql
1.
 and nvl(t_data.card_series, t_data.new_card_series) in (11,20,21,30,36,40,50,60) 

замени на

Код: plsql
1.
and (t_data.card_series (11,20,21,30,36,40,50,60) or (t_data.card_seriesis null and  t_data.new_card_series in (11,20,21,30,36,40,50,60) )



3) COUNT(ms.id) замени на sum(1).Хоспаде индусский тюнинг оказывается процветает и среди русско-язычных.
...
Рейтинг: 0 / 0
Экспоненциальный рост времени выполнения отчета
    #39453901
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntSol,

Для того чтоб определить факт вылезания в темп (даже после окончания выполнения) - вовсе необязательно смотреть SQL monitor.

1) Можно в v$active_session_history глянуть для твоего sql_id наиличие событий ожидания direct path read temp/direct path write temp или просто посмотреть колонку temp_space_allocated.
2) Либо table(dbms_xplan.display_cursor('8xtskaq5f0000', format => 'MEMSTATS LAST')) и смотреть колонку Used-Mem.
3) v$sql_workarea
etc

Но тебе стоит начать с избавления от коррелированных скаляров.
...
Рейтинг: 0 / 0
Экспоненциальный рост времени выполнения отчета
    #39453904
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В display_cursor, ясное дело, sql_id заменить на свой.
...
Рейтинг: 0 / 0
Экспоненциальный рост времени выполнения отчета
    #39453930
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopDshedooAntSol,

1) В with'е сразу определи nvl(ms.card_series, ms.new_card_series), причём лучше через case.

2) В with'e условие
Код: plsql
1.
 and nvl(t_data.card_series, t_data.new_card_series) in (11,20,21,30,36,40,50,60) 

замени на

Код: plsql
1.
and (t_data.card_series (11,20,21,30,36,40,50,60) or (t_data.card_seriesis null and  t_data.new_card_series in (11,20,21,30,36,40,50,60) )



3) COUNT(ms.id) замени на sum(1).Хоспаде индусский тюнинг оказывается процветает и среди русско-язычных.

Спасибо, конечно, но я просто считаю, что каждый дельный совет должен сопровождаться бесполезным)
...
Рейтинг: 0 / 0
Экспоненциальный рост времени выполнения отчета
    #39453935
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dshedoo,

Дельный совет: тебе лучше сидеть в read-only, чтоб на форуме было меньше чепухи.
...
Рейтинг: 0 / 0
Экспоненциальный рост времени выполнения отчета
    #39453968
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntSolDshedoo,

в написании запросов я не очень, больше админю оракл пойду к разрабам тогда. Спасибо.

Тогда попробуй вот такое, тоже тормозить будет за 5-10 дней

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
select nvl(t_data.card_series, t_data.new_card_series) as "серии", 
t_data.card_num "Номер карты", 
COUNT(t_data.id) "Среднее",
Count(decode(division.code,'0001',1)) as "0001",
Count(decode(division.code,'0101',1)) as "0101",
Count(decode(division.code,'0102',1)) as "0102",
Count(decode(division.code,'0103',1)) as "0103"
from from t_data , division
where division.id = t_data.id_division
and t_data.kind in (16,17,34)
and nvl(t_data.card_series, t_data.new_card_series) in (11,20,21,30,36,40,50,60) 
and t_data.date_of between TO_DATE('01.10.2016 00:00:00', 'dd.mm.yyyy hh24:mi:ss') 
                                 and TO_DATE('01.11.2016 00:00:00', 'dd.mm.yyyy hh24:mi:ss') 

group by nvl(t_data.card_series, t_data.new_card_series), t_data.card_num
order by nvl(t_data.card_series, t_data.new_card_series), t_data.card_num
...
Рейтинг: 0 / 0
Экспоненциальный рост времени выполнения отчета
    #39453972
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXL,

from from написать как один from =) sorry
...
Рейтинг: 0 / 0
Экспоненциальный рост времени выполнения отчета
    #39454075
AntSol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MaximaXXL,

Бро, ты полковник, ты на белом коне, ты командуешь парадом!!))))) Твой скрипт отработал за 2,5 минуты в промежутке месяца.


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


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