
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
16.05.2017, 12:39
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
Отцы приветствую. Есть следующая проблема: скрипт считает среднее значение использования карт в течении определенной даты(фильтр). С какого то момента подсчет за месяц стал занимать очень много времени. Раньше час-два. Теперь сутки\полтора. Опытным путем установил, что за день считаем 5 секунд, за 5 дней 10 минут. За 15 дней 11 часов и тд...Я вот думаю может есть какая то проблема с пространством TEMP или ему надо добавить еще один REDO файлик. Можете что то посоветовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 12:41
|
|||
|---|---|---|---|
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSol, А есть все необходимые индексы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 12:46
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSol, а мне думается что у вас там slow-by-slow построчная обработка в многократно вложенных друг в друга циклах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 12:56
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSol, То есть сначала предполагает угадать код, а потом куда уходит время. Ждем телепатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:02
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
londinium, С индексами все в порядке. Конечно попробую перестроить, но не думаю что причина в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:03
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
dbms_photoshop, Код чего? Запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:09
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
Добрый Э - Эх, Скрипт простой: with mainselect as( select t_data.*, division.code as dcode, operator.code as ocode from t_data join division on (division.id = t_data.id_division) join operator on (operator.id = division.id_operator) where 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') order by nvl(t_data.card_series, t_data.new_card_series), t_data.card_num ) select nvl(ms.card_series, ms.new_card_series) as "серии", ms.card_num "Номер карты", COUNT(ms.id) "Среднее", (SELECT COUNT(mainselect.id) from mainselect where dcode = 0001 and ms.card_num = mainselect.card_num) as "0001", (SELECT COUNT(mainselect.id) from mainselect where dcode = 0101 and ms.card_num = mainselect.card_num) as "0101", (SELECT COUNT(mainselect.id) from mainselect where dcode = 0102 and ms.card_num = mainselect.card_num) as "0102", (SELECT COUNT(mainselect.id) from mainselect where dcode = 0103 and ms.card_num = mainselect.card_num) as "0103" from mainSelect ms group by nvl(ms.card_series, ms.new_card_series), ms.card_num order by nvl(ms.card_series, ms.new_card_series), ms.card_num ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:27
|
|||
|---|---|---|---|
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSol, 1) Условия из where перекинь в join: Код: plsql 1. 2. 3. 4. 2) Order из with убирай. 3) (SELECT COUNT(mainselect.id) from mainselect where dcode = 0001 and ms.card_num = mainselect.card_num) as "0001", (SELECT COUNT(mainselect.id) from mainselect where dcode = 0101 and ms.card_num = mainselect.card_num) as "0101", (SELECT COUNT(mainselect.id) from mainselect where dcode = 0102 and ms.card_num = mainselect.card_num) as "0102", (SELECT COUNT(mainselect.id) from mainselect where dcode = 0103 and ms.card_num = mainselect.card_num) as "0103" заменяем на Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:36
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
DshedooУсловия из where перекинь в joinПросвети теперь как это отразиться на плане. PS. Переписывание коррелированных скаляров в case - совет по делу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:42
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
Возможно переписывание скрипта даст некоторый прирост производительности, но у меня все ощущение, что где то ему не хватает пространства....так не думаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:42
|
|||
|---|---|---|---|
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSol, посмотреть типы t_data.kind, t_data.card_series, t_data.new_card_series если они не number перевести in в строки (('16','17','34')) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:45
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSolу меня все ощущениеЧто-то вас много повылазило на форум в последнее время с ощущениями. Использовать мозг и куда уходит время становится все менее популярным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:47
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
MaximaXXL, number ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:48
|
|||
|---|---|---|---|
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSol, operator.code as ocode в дальнейшем не используется, может не надо добавлять таблицу Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 13:55
|
|||
|---|---|---|---|
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSol, Я бы вообще переписал это чудо без with mainselect as( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 14:00
|
|||
|---|---|---|---|
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSol, 1) В with'е сразу определи nvl(ms.card_series, ms.new_card_series), причём лучше через case. 2) В with'e условие Код: plsql 1. замени на Код: plsql 1. 3) COUNT(ms.id) замени на sum(1). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 14:08
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
Dshedoo, в написании запросов я не очень, больше админю оракл пойду к разрабам тогда. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 14:10
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSolDshedoo, в написании запросов я не очень, больше админю оракл пойду к разрабам тогда. Спасибо.Админу неплохо было бы взять SQL Monitoring скрипта и глянуть на что время уходит. Я бы сильно подозревал, что резкий рост времени обусловлен вылезанием в Temp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 14:14
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
Alexander Ryndin, Мое чутье говорит о том же. Да и TEMP у меня уже на краю. Просто не хочется сразу стопать БД и удалять его, создав новый. Хоть это и не сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 14:19
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSolПросто не хочется сразу стопать БД и удалять его, создав новый. а что это даст и зачем стопать БД??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 14:25
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
Q.Tarantino, Мне казалось из mount или nomount необходимо делать. Хотя возможно переключить и так можно. Обычно стопал во избежание проблем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 14:26
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSol, Ну и сделаю его побольше. Со стандартным развером в 30 гигов точно испытывал проблемы но при индексации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 14:28
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSolAntSol, Ну и сделаю его побольше. Со стандартным развером в 30 гигов точно испытывал проблемы но при индексацииЕще раз. Админу неплохо было бы взять SQL Monitoring скрипта и глянуть на что время уходит. Я бы сильно подозревал, что резкий рост времени обусловлен вылезанием в Temp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 14:31
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
Alexander Ryndin, Окей, попробую. Ни разу не использовал данный инструмент, так как кроме простейших запросов ничего не пишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2017, 14:40
|
|||
|---|---|---|---|
|
|||
Экспоненциальный рост времени выполнения отчета |
|||
|
#18+
AntSol, Alexander Ryndin... Я бы сильно подозревал, что резкий рост времени обусловлен вылезанием в Temp Если вылезание в TEMP имеет место быть и не уйдёт после оптимизации , несколько доков для подумать/попробовать: tablespace_group_clause for temporary tablespaces Temporary tablespace group tips Storage Management for OLAP (не совсем в тему, но почитать стоит) Oracle 11R2A tablespace group lets you assign multiple temporary tablespaces to a single user and increases the addressability of temporary tablespaces. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&mobile=1&tid=1885935]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
213ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 529ms |

| 0 / 0 |
