Вставить в .. Выбрать из .. Висит - Oracle - PullRequest
1 голос
/ 09 мая 2019

У меня есть простой оператор вставки, который отлично работает в базе данных DEV_1, но зависает при выполнении в базе данных DEV_2.

Оператор select возвращает 200 строк, выполнение которого занимает 7 секунд. Уже проверил на замки.

INSERT INTO test_table
SELECT account
FROM   table_1 a,
       table_2 q,
       table_3 c
WHERE  a.bkg_date = q.prev_working_day
AND    a.branch_code = q.branch_code
AND    a.account = c.ref_no
AND    a.account NOT IN (SELECT DISTINCT x.account
                         FROM   table_1 x,
                                (SELECT a.account,
                                        MAX(a.bkg_date) bkg_date
                                 FROM   table_1 a,
                                        table_4 b
                                 WHERE  a.lcy_closing_bal < 0
                                 AND    a.account = b.cust_ac_no
                                 GROUP  BY a.account) y
                         WHERE  x.account = y.account
                         AND    x.bkg_date > y.bkg_date
                         AND    x.lcy_closing_bal >= 0 HAVING COUNT(x.account) > 1
                         GROUP  BY x.account);

Я также пытался использовать в качестве выбора таблицу создания, которая работает нормально. Я хочу понять, как получается, что Create create работает, но вставка висит.

Create table abc as
( select ...)
...