powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос тормозит
26 сообщений из 26, показаны все 2 страниц
Запрос тормозит
    #39365844
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.
Подскажите пожалуйста, где может быть ошибка ...
Есть вот такой запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
  select i.invoice_dept as dept_id, it.opr_date, 0 as offer_id, s.stock_id, nvl(s.lot_num, to_char(po.purchase_num)) as lot_num, 0 as stock_to, 0 as stock_from,
         0 as stage_type, 0 as deliv_type, it.deliv_id, 0 as shipped_id, 0 as release_id, 0 as fractionation_id, 0 as inventory_id, 0 as briquetting_id,
         it.budget_id, it.prod_id,
         it.qty*((soc.service_qty/tt.service_total)/(select count(t.stock_id) from stock t where t.storage_id=so.storage_id and t.purchase_row_id=soc.purchase_row_id)) as qty,
         it.amount*((soc.service_qty/tt.service_total)/(select count(t.stock_id) from stock t where t.storage_id=so.storage_id and t.purchase_row_id=soc.purchase_row_id)) as amount,
         it.invoice_id as invoiceid, -81 as status
  from invoice i, invoice_content it, service_order_content soc, service_order_trn sot, service_order so, prod p, prod_grade pg,
       purchase_order_trn pot, stock s, purchase_order po,
       (select m.id, m.service_row_id, sum(m.service_qty) as service_total
        from (select distinct it.id, soc.service_row_id, soc.purchase_row_id, decode(soc.service_qty,0, soc.invoice_qty, soc.service_qty) as service_qty
              from invoice i, invoice_content it, service_order_content soc, service_order_trn sot, service_order so, purchase_order_trn pot, prod p, prod_grade pg, stock s
              where i.invoice_type=8 and it.invoice_id=i.invoice_id and it.purchase_id>0 and it.service_row_id>0
                and soc.service_row_id=it.service_row_id
                and sot.service_row_id=soc.service_row_id
                and pot.id=soc.purchase_row_id and pot.order_id=it.purchase_id
                and p.prod_id=pot.prod_id
                and pg.grade_id=p.prod_grade and pg.grade_id=it.grade_id
                and so.service_id=sot.service_id and so.storage_id>0
                and s.storage_id=so.storage_id and s.purchase_row_id=soc.purchase_row_id and nvl(s.stock_id,0)>0) m
        group by m.id, m.service_row_id) tt
  where i.invoice_dept>0 and i.invoice_kind=1 and i.invoice_voided=0 and i.invoice_type=8 and i.status=1
    and it.invoice_id=i.invoice_id and it.purchase_id>0
    and i.invoice_id not in (select invoice_id from finance.stock_cost_trn)
    and it.id=nvl(tt.id, 0) and it.service_row_id=nvl(tt.service_row_id, 0)
    and soc.service_row_id=it.service_row_id
    and sot.service_row_id=soc.service_row_id
    and so.service_id=sot.service_id
    and so.storage_id>0
    and pot.id=soc.purchase_row_id and pot.order_id=it.purchase_id and po.order_id=pot.order_id
    and p.prod_id=pot.prod_id and pg.grade_id=p.prod_grade and pg.grade_id=it.grade_id
    and s.storage_id=so.storage_id and s.purchase_row_id=soc.purchase_row_id and nvl(s.stock_id,0)>0



Выполняется отлично, быстро и надежно. 8-10 сек.

Но если сделать 2 изменения запрос виснет.

1. Если убрать все из результирующих полей кроме i.invoice_id - запрос умирает. После 10 мин выполнения я его обрываю.
2. Если добавить в index в таблице invoice_content еще поля для индексирования (сейчас там только invoice_id, если добавить еще id, purchase_id, service_row_id) - результат тот же самый, запрос зависает.

Подскажите почему так происходит? Что можно изменить? Возможные причины, спасибо.


------------------------------------------------------------
Veni. Vidi. Vici.
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365847
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как насчет плана?
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365850
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грунов,

explain plan for ...
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365887
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
План получается такой вот ...
Description Object owner Object name Cost Cardinality Bytes Access predicatesSELECT STATEMENT GOAL = ALL_ROWS 11845 1 123 HASH JOIN ANTI NA 11845 1 123 I."INVOICE_ID"="INVOICE_ID" NESTED LOOPS NESTED LOOPS 3191 1 120 HASH JOIN 3190 1 100 S."STORAGE_ID"="SO"."STORAGE_ID" AND "S"."PURCHASE_ROW_ID"="SOC"."PURCHASE_ROW_ID" NESTED LOOPS NESTED LOOPS 3053 1 87 NESTED LOOPS 3052 1 79 NESTED LOOPS 3051 1 71 NESTED LOOPS 3051 67 NESTED LOOPS 1493 1 52 HASH JOIN 1493 2333 102652 POT."ORDER_ID"="IT"."PURCHASE_ID" AND "PG"."GRADE_ID"="IT"."GRADE_ID" HASH JOIN 83 4741 109043 P."PROD_ID"="POT"."PROD_ID" HASH JOIN 15 1180 12980 PG."GRADE_ID"="P"."PROD_GRADE" INDEX FULL SCAN SETTING PK_GRADE 1 98 392 TABLE ACCESS FULL SETTING PROD 13 1244 8708 TABLE ACCESS FULL STORE PURCHASE_ORDER_TRN 68 4958 59496 TABLE ACCESS FULL FINANCE INVOICE_CONTENT 1407 225352 4732392 INDEX UNIQUE SCAN STORE PK_SERVICE_CONTENT 0 1 8 SOC."SERVICE_ROW_ID"="IT"."SERVICE_ROW_ID" AND "POT"."ID"="SOC"."PURCHASE_ROW_ID" VIEW PUSHED PREDICATE FINANCE 1558 1 15 SORT GROUP BY 1558 1 17 VIEW FINANCE 1558 1 17 SORT UNIQUE 1558 1 98 HASH JOIN 1557 1 98 S."STORAGE_ID"="SO"."STORAGE_ID" AND "S"."PURCHASE_ROW_ID"="SOC"."PURCHASE_ROW_ID" NESTED LOOPS NESTED LOOPS 1419 1 85 NESTED LOOPS 1418 1 77 NESTED LOOPS 1417 1 69 NESTED LOOPS 1416 1 61 NESTED LOOPS 1414 1 54 HASH JOIN 1413 1 50 SOC."SERVICE_ROW_ID"="IT"."SERVICE_ROW_ID" AND "POT"."ORDER_ID"="IT"."PURCHASE_ID" NESTED LOOPS NESTED LOOPS 5 2 58 TABLE ACCESS BY INDEX ROWID STORE SERVICE_ORDER_CONTENT 3 2 34 INDEX RANGE SCAN STORE PK_SERVICE_CONTENT 2 2 SOC."SERVICE_ROW_ID"="IT"."SERVICE_ROW_ID" INDEX UNIQUE SCAN STORE IND_ID 0 1 POT."ID"="SOC"."PURCHASE_ROW_ID" TABLE ACCESS BY INDEX ROWID STORE PURCHASE_ORDER_TRN 1 1 12 TABLE ACCESS FULL FINANCE INVOICE_CONTENT 1407 30165 633465 INDEX FULL SCAN SETTING PK_GRADE 1 1 4 PG."GRADE_ID"="IT"."GRADE_ID" TABLE ACCESS BY INDEX ROWID SETTING PROD 2 1 7 INDEX RANGE SCAN SETTING PK_PROD 1 1 P."PROD_ID"="POT"."PROD_ID" TABLE ACCESS BY INDEX ROWID FINANCE INVOICE 1 1 8 INDEX UNIQUE SCAN FINANCE PK_INVOICE 0 1 IT."INVOICE_ID"="I"."INVOICE_ID" TABLE ACCESS BY INDEX ROWID STORE SERVICE_ORDER_TRN 1 1 8 INDEX UNIQUE SCAN STORE PK_SERVICE_TRN_1 0 1 SOT."SERVICE_ROW_ID"="SOC"."SERVICE_ROW_ID" INDEX UNIQUE SCAN STORE PK_SERVICE_ORDER 0 1 SO."SERVICE_ID"="SOT"."SERVICE_ID" TABLE ACCESS BY INDEX ROWID STORE SERVICE_ORDER 1 1 8 TABLE ACCESS FULL STORE STOCK 137 24175 314275 INDEX UNIQUE SCAN STORE PK_PO 0 1 4 PO."ORDER_ID"="POT"."ORDER_ID" TABLE ACCESS BY INDEX ROWID STORE SERVICE_ORDER_TRN 1 1 8 INDEX UNIQUE SCAN STORE PK_SERVICE_TRN_1 0 1 SOT."SERVICE_ROW_ID"="SOC"."SERVICE_ROW_ID" INDEX UNIQUE SCAN STORE PK_SERVICE_ORDER 0 1 SO."SERVICE_ID"="SOT"."SERVICE_ID" TABLE ACCESS BY INDEX ROWID STORE SERVICE_ORDER 1 1 8 TABLE ACCESS FULL STORE STOCK 137 24175 314275 INDEX UNIQUE SCAN FINANCE PK_INVOICE 0 1 IT."INVOICE_ID"="I"."INVOICE_ID" TABLE ACCESS BY INDEX ROWID FINANCE INVOICE 1 1 20 TABLE ACCESS FULL FINANCE STOCK_COST_TRN 8637 2242280 6726840
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365894
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грунов,

А в двух других вариантах?
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365895
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГруновПлан получается такой вот ...Такой читай сам.
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365899
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envГрунов,

А в двух других вариантах?

Это в варианте когда в результирующих полях только 1 поле.

Сейчас для нормального варианта сделаю.
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365900
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicГруновПлан получается такой вот ...Такой читай сам.

А как его сюда выложить чтобы был читабельным
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365902
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГруновElicпропущено...
Такой читай сам.

А как его сюда выложить чтобы был читабельным

Скриншотом?
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365911
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первая часть плана для запроса который выполняется быстро. Основной запрос.
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365913
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365917
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините ошибся ... Это как раз тот который зависает. Который я до этого вылаживал в виде таблицы.
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365918
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот план исходного запроса.
...
Рейтинг: 0 / 0
Запрос тормозит
    #39365919
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366028
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГруновДоброго времени суток.
Подскажите пожалуйста, где может быть ошибка ...
Есть вот такой запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
  select i.invoice_dept as dept_id, it.opr_date, 0 as offer_id, s.stock_id, nvl(s.lot_num, to_char(po.purchase_num)) as lot_num, 0 as stock_to, 0 as stock_from,
         0 as stage_type, 0 as deliv_type, it.deliv_id, 0 as shipped_id, 0 as release_id, 0 as fractionation_id, 0 as inventory_id, 0 as briquetting_id,
         it.budget_id, it.prod_id,
         it.qty*((soc.service_qty/tt.service_total)/(select count(t.stock_id) from stock t where t.storage_id=so.storage_id and t.purchase_row_id=soc.purchase_row_id)) as qty,
         it.amount*((soc.service_qty/tt.service_total)/(select count(t.stock_id) from stock t where t.storage_id=so.storage_id and t.purchase_row_id=soc.purchase_row_id)) as amount,
         it.invoice_id as invoiceid, -81 as status
  from invoice i, invoice_content it, service_order_content soc, service_order_trn sot, service_order so, prod p, prod_grade pg,
       purchase_order_trn pot, stock s, purchase_order po,
       (select m.id, m.service_row_id, sum(m.service_qty) as service_total
        from (select distinct it.id, soc.service_row_id, soc.purchase_row_id, decode(soc.service_qty,0, soc.invoice_qty, soc.service_qty) as service_qty
              from invoice i, invoice_content it, service_order_content soc, service_order_trn sot, service_order so, purchase_order_trn pot, prod p, prod_grade pg, stock s
              where i.invoice_type=8 and it.invoice_id=i.invoice_id and it.purchase_id>0 and it.service_row_id>0
                and soc.service_row_id=it.service_row_id
                and sot.service_row_id=soc.service_row_id
                and pot.id=soc.purchase_row_id and pot.order_id=it.purchase_id
                and p.prod_id=pot.prod_id
                and pg.grade_id=p.prod_grade and pg.grade_id=it.grade_id
                and so.service_id=sot.service_id and so.storage_id>0
                and s.storage_id=so.storage_id and s.purchase_row_id=soc.purchase_row_id and nvl(s.stock_id,0)>0) m
        group by m.id, m.service_row_id) tt
  where i.invoice_dept>0 and i.invoice_kind=1 and i.invoice_voided=0 and i.invoice_type=8 and i.status=1
    and it.invoice_id=i.invoice_id and it.purchase_id>0
    and i.invoice_id not in (select invoice_id from finance.stock_cost_trn)
    and it.id=nvl(tt.id, 0) and it.service_row_id=nvl(tt.service_row_id, 0)
    and soc.service_row_id=it.service_row_id
    and sot.service_row_id=soc.service_row_id
    and so.service_id=sot.service_id
    and so.storage_id>0
    and pot.id=soc.purchase_row_id and pot.order_id=it.purchase_id and po.order_id=pot.order_id
    and p.prod_id=pot.prod_id and pg.grade_id=p.prod_grade and pg.grade_id=it.grade_id
    and s.storage_id=so.storage_id and s.purchase_row_id=soc.purchase_row_id and nvl(s.stock_id,0)>0



Выполняется отлично, быстро и надежно. 8-10 сек.

Но если сделать 2 изменения запрос виснет.

1. Если убрать все из результирующих полей кроме i.invoice_id - запрос умирает. После 10 мин выполнения я его обрываю.
2. Если добавить в index в таблице invoice_content еще поля для индексирования (сейчас там только invoice_id, если добавить еще id, purchase_id, service_row_id) - результат тот же самый, запрос зависает.

Подскажите почему так происходит? Что можно изменить? Возможные причины, спасибо.


------------------------------------------------------------
Veni. Vidi. Vici.

По пункту 1 - в вас в оригинальном запросе it.invoice_id, а не i.invoice_id
По пункту 2 - собрать статистику.

И еще, по вопросу организации учета нот в консерватории риторический вопрос :
почему в условиях объеденения таблиц нет алиаса tt ?
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366032
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХПо пункту 1 - в вас в оригинальном запросе it.invoice_id, а не i.invoice_id
По пункту 2 - собрать статистику.

И еще, по вопросу организации учета нот в консерватории риторический вопрос :
почему в условиях объеденения таблиц нет алиаса tt ?

1 - если ставить it.invoice_id или i.invoice_id разницы нет.

2 - соберу, спасибо ...

3. and it.id=nvl(tt.id, 0) and it.service_row_id=nvl(tt.service_row_id, 0) ---- вот же связка ...
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366048
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Груновд0kХПо пункту 1 - в вас в оригинальном запросе it.invoice_id, а не i.invoice_id
По пункту 2 - собрать статистику.

И еще, по вопросу организации учета нот в консерватории риторический вопрос :
почему в условиях объеденения таблиц нет алиаса tt ?

1 - если ставить it.invoice_id или i.invoice_id разницы нет.

2 - соберу, спасибо ...

3. and it.id=nvl(tt.id, 0) and it.service_row_id=nvl(tt.service_row_id, 0) ---- вот же связка ...

Я про это спрашиваю
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
......
from ...... ,
       (select m.id, m.service_row_id, sum(m.service_qty) as service_total
        from (select distinct it.id, soc.service_row_id, soc.purchase_row_id, decode(soc.service_qty,0, soc.invoice_qty, soc.service_qty) as service_qty
              from invoice i, invoice_content it, service_order_content soc, service_order_trn sot, service_order so, purchase_order_trn pot, prod p, prod_grade pg, stock s
              where i.invoice_type=8 and it.invoice_id=i.invoice_id and it.purchase_id>0 and it.service_row_id>0
                and soc.service_row_id=it.service_row_id
                and sot.service_row_id=soc.service_row_id
                and pot.id=soc.purchase_row_id and pot.order_id=it.purchase_id
                and p.prod_id=pot.prod_id
                and pg.grade_id=p.prod_grade and pg.grade_id=it.grade_id
                and so.service_id=sot.service_id and so.storage_id>0
                and s.storage_id=so.storage_id and s.purchase_row_id=soc.purchase_row_id and nvl(s.stock_id,0)>0) m
        group by m.id, m.service_row_id) tt
where......


tt после where я не нашел .
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366051
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Груновд0kХПо пункту 1 - в вас в оригинальном запросе it.invoice_id, а не i.invoice_id
По пункту 2 - собрать статистику.

И еще, по вопросу организации учета нот в консерватории риторический вопрос :
почему в условиях объеденения таблиц нет алиаса tt ?

1 - если ставить it.invoice_id или i.invoice_id разницы нет.



для вас нет, а для оптимизатора есть

invoice i, invoice_content it
разные таблицы.
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366062
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХtt после where я не нашел .

4 строчка ...
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366079
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Груновд0kХtt после where я не нашел .

4 строчка ...

где тут 4 строчка :

автор1. Если убрать все из результирующих полей кроме i.invoice_id - запрос умирает. После 10 мин выполнения я его обрываю.

?
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366081
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХ,

1-- where i.invoice_dept>0 and i.invoice_kind=1 and i.invoice_voided=0 and i.invoice_type=8 and i.status=1
2-- and it.invoice_id=i.invoice_id and it.purchase_id>0
3-- and i.invoice_id not in (select invoice_id from finance.stock_cost_trn)
4-- and it.id=nvl(tt.id, 0) and it.service_row_id=nvl(tt.service_row_id, 0)
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366103
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХГруновпропущено...


4 строчка ...

где тут 4 строчка :

автор1. Если убрать все из результирующих полей кроме i.invoice_id - запрос умирает. После 10 мин выполнения я его обрываю.

?

Код: plsql
1.
2.
3.
4.
1-- where i.invoice_dept>0 and i.invoice_kind=1 and i.invoice_voided=0 and i.invoice_type=8 and i.status=1
2-- and it.invoice_id=i.invoice_id and it.purchase_id>0
3-- and i.invoice_id not in (select invoice_id from finance.stock_cost_trn)
4-- and it.id=nvl(tt.id, 0) and it.service_row_id=nvl(tt.service_row_id, 0)



оставить вот так
Код: plsql
1.
2.
  select i.invoice_id
  from ...
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366127
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Груновд0kХ,

1-- where i.invoice_dept>0 and i.invoice_kind=1 and i.invoice_voided=0 and i.invoice_type=8 and i.status=1
2-- and it.invoice_id=i.invoice_id and it.purchase_id>0
3-- and i.invoice_id not in (select invoice_id from finance.stock_cost_trn)
4-- and it.id=nvl(tt.id, 0) and it.service_row_id=nvl(tt.service_row_id, 0)

не вижу tt, но вижу внезапно прилетающую Ora-01427
извините я устал, советую вам переписать эту простыню.
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366135
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХГруновд0kХ,

1-- where i.invoice_dept>0 and i.invoice_kind=1 and i.invoice_voided=0 and i.invoice_type=8 and i.status=1
2-- and it.invoice_id=i.invoice_id and it.purchase_id>0
3-- and i.invoice_id not in (select invoice_id from finance.stock_cost_trn)
4-- and it.id=nvl(tt.id, 0) and it.service_row_id=nvl(tt.service_row_id, 0)

не вижу tt, но вижу внезапно прилетающую Ora-01427
извините я устал, советую вам переписать эту простыню.

Спасибо, за совет. Впринципе как раз этим и занимаемся ...
Просто хотелось бы понять причину замерзания запроса на будущее ...
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366143
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Груновд0kХпропущено...


не вижу tt, но вижу внезапно прилетающую Ora-01427
извините я устал, советую вам переписать эту простыню.

Спасибо, за совет. Впринципе как раз этим и занимаемся ...
Просто хотелось бы понять причину замерзания запроса на будущее ...

Я думаю, что причина замерзания в неявном коррелированном подзапросе,
в 4 и 5 строчках отсуствие которых, срывают оптимизатору крышу на
tt без явного условия объединения в on или where .
Для начала, убрав поля из алиаса tt из списка полей , уберите алиас tt
из from.
...
Рейтинг: 0 / 0
Запрос тормозит
    #39366423
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грунов,

Проверьте статистику, если верить вашим планам и комментариям, то запрос с FTA + hash join по purchase_order_trn выгоднее чем план с индексным доступом к ней же по NL.

Убирая поля из select list вы даёте возможность оптимизатору применить этот невыгодный для данного запроса индекс.

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


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