SQL-запрос занимает 9 часов для записей 120K - PullRequest
0 голосов
/ 12 мая 2019

У меня есть небольшой запрос, в котором мне нужно сделать несколько простых вычислений; однако, это займет вечность, чтобы закончить. Я использовал подобные запросы раньше для больших данных, и производительность была намного лучше. Я попытался выполнить сортировку по исходным таблицам, но то же самое происходит, когда мой ETL перемещается на 2 строки в секунду ... ниже приведен мой запрос (любые рекомендации относительно настройки более чем приветствуются)

SELECT      
    t1.APPID,
    t1.APP_INS_ID,
    t1.APP_INS_ID_DUE_DTAE,
    TRUNC(LAST_DAY(ADD_MONTHS(t1.APP_INS_ID_DUE_DTAE, -1))) +1 AS EndDateOfPaymentMOnth,
    t1.APP_INS_ID_PAYMENT_DATE,
    t1.ispaid,
    (SELECT COUNT(APP_INS_ID) 
     FROM tbl1 t2 
     WHERE t1.APPID = t2.APPID 
       AND t2.APP_INS_ID <= t1.APP_INS_ID 
       AND T2.Is_due = 1 
       AND ispaid = 'Y'  
       AND TRUNC(APP_INS_ID_PAYMENT_DATE) <=  TRUNC(LAST_DAY(ADD_MONTHS(t1.APP_INS_ID_DUE_DTAE, -1))) + 1) AS TOTAL_PAID
FROM 
    tbl1 t1  
WHERE  
    t1.is_due = 1 
    AND t1.APP_INS_ID_DUE_DTAE < TRUNC((SYSDATE - (EXTRACT(DAY FROM SYSDATE)) + 1))

В основном я пытаюсь подсчитать, сколько взносов выплачено до наступления срока платежа.

Ваша помощь очень ценится!

Вот простые данные с ожидаемым выводом:

APPID   APP_INS_ID  APP_INS_ID_DUE_DTAE EndDateOfPaymentMOnth 
APP_INS_ID_PAYMENT_DATE     ispaid  TOTAL_PAID
1|  1|      1-Aug-14|       1-Aug-14|       2-Oct-14|           Y|  0|
1|  2|      1-Sep-14|       1-Sep-14|       2-Oct-14|           Y|  0|
1|  3|      1-Oct-14|       1-Oct-14|       2-Oct-14|           Y|  0|
1|  4|      1-Nov-14|       1-Nov-14|       2-Oct-14|           Y|  4|
1|  5|      1-Dec-14|       1-Dec-14|       24-Nov-14|          Y|  5|
1|  6|      1-Jan-15|       1-Jan-15|       9-Dec-14|           Y|  6|

1 Ответ

0 голосов
/ 12 мая 2019

Спасибо всем за помощь. Я решил проблему путем применения индексации к этой таблице. Теперь моя работа движется со скоростью 30 тысяч записей в секунду.

...