powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / табличные конвейерные функции тормоза на разный базах
18 сообщений из 18, страница 1 из 1
табличные конвейерные функции тормоза на разный базах
    #39798995
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеются 2 примерно одинаковые по объему базы oracle 11xe 64bit
есть пакет который выдает таблицу
select * from table(pk_salary.salary_view) order by 1
на одной базе выполняется за 1,23с на другой 135,3с куда копать не понятно планы выглядят одинаково

Description Object owner Object name Cost Cardinality Bytes
SELECT STATEMENT, GOAL = CHOOSE
SORT ORDER BY
COLLECTION ITERATOR PICKLER FETCH PK_SALARY SALARY_VIEW

покажите в каком направлении копать

накатывали этот запрос примерно на 200 баз в сети
где в 15 базах обнаружены тормоза
никакой закономерности обнаружить не удалось
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39798996
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день!!
забыл написать :)
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39798997
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO PL SQL Developer - Profiller
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799020
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111в каком направлении копатьЭто невообразимо сложно понять, что в
ilyuha111пакет который выдает таблицу
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799027
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделал но понятней от этого не стало

-- Created on 09.04.2019 by ANT
declare
-- Local variables here
i integer;
begin
-- Test statements here

for c in (select * from table(pk_salary.salary_view(v_salary_head_id => :v_salary_head_id,
v_product_id => :v_product_id))
) loop
null;
end loop;


end;
сделал вот такой скрипт

PK_SALARY 631 134 548 9264 for cc in (select sr.salary_rule_id , -- база с тормозами

PK_SALARY 631 257 7002 for cc in (select sr.salary_rule_id , -- база без тормозов
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799029
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В пакетах ничего интересного нет
вот тексет
type salary_rec is record(
product_id t_product.product_id%type,
sum_w_nds number,
zp_fond number,
zp_kass number,
zp_zav number
);
type salary_tab is table of salary_rec;

function salary_view(
v_salary_head_id t_salary_head.salary_head_id%type default null,
v_product_id t_product.product_id%type default null
)
return salary_tab pipelined
as
TYPE cur_typ IS REF CURSOR;
c cur_typ;

bc_roznica_rec type_roznica_rec;
bc1_roznica_rec roznica_rec ;

i number;
bc_salary_tab salary_tab;
bc_salary_rec salary_rec;
vl_sql varchar2(30000);
vl_name_search_stub varchar2(3000);
vl_name_search_condition varchar2(3000);
vl_salary_rule_priority number;
vl_salary_rule_type_id number;
vl_serial_value number;
vl_salary_summ number;
vl_salary_rule_paralel number;
vl_salary_rule_name t_salary_rule.salary_rule_name%type;
vl_salary_rule_type_name t_salary_rule_type.salary_rule_type_name%type;
vl_product_id varchar2(32000);
vl_partner_params_id varchar2(32000);
vl_partner_params_id1 varchar2(32000);
vl_bonus_zav number;
vl_partner number;
vl_base_zp_err number;



begin
vl_product_id :='';
if v_product_id is not null then
vl_product_id :='and i.product_id ='||v_product_id;
end if;
vl_partner := organiz.pk_system.GetMyPartnerID;

vl_sql :=
'select s.product_id,' || chr(10) ||
' 1 as outcome_count,' || chr(10) ||
' max(s.outcome_price_one_w_nds) as sum_w_nds,' || chr(10) ||
' max(s.outcome_price_one_w_nds - i.income_price_w_nds) as sum_nac ,' || chr(10) ||
' max(pb.bonus_zav) as bonus_zav' || chr(10) ||
' from' || chr(10) ||
' t_sklad_state s,' || chr(10) ||
' t_income i,' || chr(10) ||
' t_partner_link_buh pb,' || chr(10) ||
' t_owner p' || chr(10) ||
' where' || chr(10) ||
' i.income_id = s.income_id' || chr(10) ||
' and s.product_count_sale>0' || chr(10) ||
vl_product_id || chr(10) ||
--' and i.product_id = 5100001333' || chr(10) ||
' and pb.partner_id = p.partner_id' || chr(10) ||
' GROUP BY' || chr(10) ||
' s.product_id'|| chr(10) ||
'';


--dbms_output.put_line(vl_sql) ;

OPEN c FOR vl_sql;
LOOP
FETCH c INTO bc1_roznica_rec;
EXIT WHEN c%NOTFOUND;
i:=0;
vl_base_zp_err :=0;
for cc in (select sr.salary_rule_id ,
sr.salary_head_id ,
sr.salary_rule_name ,
srt.salary_rule_type_name,
sr.salary_rule_priority ,
sr.salary_rule_paralel ,
sr.salary_rule_type_id ,
srpro.product_value
from t_salary_rule sr,
t_salary_head sh,
t_salary_rule_type srt,
t_salary_rule_product srpro,
t_salary_rule_partner srp
where srt.salary_rule_type_id = sr.salary_rule_type_id
and sr.salary_head_id = sh.salary_head_id
and srt.salary_rule_type_id = sr.salary_rule_type_id
and srp.salary_rule_id = sr.salary_rule_id
and srpro.salary_rule_id = sr.salary_rule_id
and srpro.product_id =bc1_roznica_rec.product_id
and srp.is_del_flag = 0
and srpro.is_del_flag = 0
and sr.is_del_flag = 0
and sh.is_del_flag = 0
and sh.document_status_id= 290102
and trunc(sysdate) between sr.salary_head_date_start and coalesce(sr.salary_head_date_end,sh.salary_head_date_end)
and srp.partner_id =vl_partner
order by sr.salary_rule_priority
) loop

i:=1;

if cc.salary_rule_type_id = 1 then
vl_salary_summ:= bc1_roznica_rec.sum_w_nds*cc.product_value/100;
end if;

if cc.salary_rule_type_id = 2 then
vl_salary_summ:= bc1_roznica_rec.sum_nac*cc.product_value/100;
end if;

if cc.salary_rule_type_id = 3 then
vl_salary_summ:= bc1_roznica_rec.outcome_count*cc.product_value;
end if;

if cc.salary_rule_type_id =4 then
vl_salary_summ:= bc1_roznica_rec.outcome_count*cc.product_value;
end if;

if cc.salary_rule_paralel = 1 then
vl_bonus_zav := bc1_roznica_rec.bonus_zav;
else
vl_bonus_zav := 0;
end if;
bc_salary_rec.product_id := bc1_roznica_rec.product_id;
bc_salary_rec.sum_w_nds := bc1_roznica_rec.sum_w_nds;
bc_salary_rec.zp_fond := vl_salary_summ;
bc_salary_rec.zp_kass := vl_salary_summ*(1-vl_bonus_zav/100);
bc_salary_rec.zp_zav := vl_salary_summ*(vl_bonus_zav/100);
pipe row(bc_salary_rec);
exit;
end loop;

if i=0 then
begin
select sr.salary_rule_priority,
sr.salary_rule_type_id,
sr.serial_value ,
sr.salary_rule_paralel
into
vl_salary_rule_priority,
vl_salary_rule_type_id ,
vl_serial_value ,
vl_salary_rule_paralel
from t_salary_rule sr,
t_salary_head sh,
t_salary_rule_type srt,
t_salary_rule_partner srp
where srt.salary_rule_type_id = sr.salary_rule_type_id
and sr.salary_rule_priority = 100 -- базовая зп на все товары код 100
and sr.salary_head_id = sh.salary_head_id
and srt.salary_rule_type_id = sr.salary_rule_type_id
and srp.salary_rule_id = sr.salary_rule_id
and srp.is_del_flag = 0
and sr.is_del_flag = 0
and sh.is_del_flag = 0
and sh.document_status_id= 290102
and trunc(sysdate) between sr.salary_head_date_start and coalesce(sr.salary_head_date_end,sh.salary_head_date_end)
and srp.partner_id =vl_partner;
exception
when too_many_rows then
vl_base_zp_err :=2;
when no_data_found then
vl_base_zp_err :=1;
when others then raise;
end;


if vl_base_zp_err = 0 then
if vl_salary_rule_type_id = 1 then
vl_salary_summ:= bc1_roznica_rec.sum_w_nds* vl_serial_value /100;
end if;

if vl_salary_rule_type_id = 2 then
vl_salary_summ:= bc1_roznica_rec.sum_nac* vl_serial_value /100;
end if;

if vl_salary_rule_type_id = 3 then
vl_salary_summ:= vl_serial_value *bc1_roznica_rec.outcome_count;
end if;
if vl_salary_rule_type_id = 4 then
vl_salary_summ:= vl_serial_value *bc1_roznica_rec.outcome_count;
end if;

if vl_salary_rule_paralel = 1 then
vl_bonus_zav := bc1_roznica_rec.bonus_zav;
else
vl_bonus_zav := 0;
end if;
bc_salary_rec.product_id := bc1_roznica_rec.product_id;
bc_salary_rec.sum_w_nds := bc1_roznica_rec.sum_w_nds;
bc_salary_rec.zp_fond := vl_salary_summ;
bc_salary_rec.zp_kass := vl_salary_summ*(1-vl_bonus_zav/100);
bc_salary_rec.zp_zav := vl_salary_summ*(vl_bonus_zav/100);
pipe row(bc_salary_rec);
end if;
end if;
end loop;
CLOSE c;
return;
end;

не понятно почему в 90% баз работает нормально а в 10% тормозит
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799051
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111Имеются 2 примерно одинаковые по объему базы oracle 11xe 64bit
есть пакет который выдает таблицу
select * from table(pk_salary.salary_view) order by 1
на одной базе выполняется за 1,23с на другой 135,3с куда копать не понятно планы выглядят одинаково

Description Object owner Object name Cost Cardinality Bytes
SELECT STATEMENT, GOAL = CHOOSE
SORT ORDER BY
COLLECTION ITERATOR PICKLER FETCH PK_SALARY SALARY_VIEW

покажите в каком направлении копать

накатывали этот запрос примерно на 200 баз в сети
где в 15 базах обнаружены тормоза
никакой закономерности обнаружить не удалось

Ключевое слово здесь "примерно".
Сравнение наборов данных, сбора статистики - на первом месте копания.
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799130
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111вот тексетЧудак, научись общаться в проф-форуме. Твой говно-текст никто даже смотреть не станет.
ilyuha111не понятно почему в 90% баз работает нормально а в 10% тормозитПотому что есть 10% людей, которые способны понять почему, а 90% даже пытаться объяснять бесполезно. Правило Парето.
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799189
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переформулирую
есть базы oracle 11xe 64bit и oracle 11xe 32bit операционистки от Winxp 32 до win10 64 примерно 200 баз
возраст с 01,05,2018 по сегодня (устанавливалось в течении полугода ) размер данных от 200М до 1000М
по неясным причинам в 20 базах запрос - select * from table(pk_salary.salary_view) order by 1 отрабатывает очень медленно (100-300 сек), в 180 базах 0,1-2 сек
пытались найти закономерности
проверяли:
операционистки
разрядность оракла 32-64
настройки памяти
содержимое зависимых от запроса таблиц
сбор статистики
количество строк в результате запроса от 1000 до 9000 в разных базах, нет закономерности
упрощали переписывали функцию
закономерностей не нашли

пытались :
сбор статистики не помогает
пересоздание зависимых таблиц не помогает
переустановка оракла помогает раз из 3х
замена компа помогает примерно 50/50
переписать запрос на SQL (без функции) помогает на 100%, но не учитывает сложную логику
создание временной таблицы (вставка из функции) работает, но её нужно часть обновлять (delete insrt примерно 3-5 минут и в это время запросы подтормаживают)
поднимали разные базы на дохлых компах (ATOM 1G оперативы hdd5200 ) все рано работает быстро примерно 5-10 сек


возможно мы не там ищем, такие запросы применять стали недавно так как раньше особой необходимости в них не было
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799196
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111переустановка оракла помогает раз из 3х
замена компа помогает примерно 50/50Надо было ещё форточки открыть/закрыть.
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799199
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111пытались :Статистически логично начать разбираться с большей группы, где по неясным причинам "0,1-2 сек".
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799204
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,

не вижу смысла
когда велась разработка то не сразу все заработало
на тестовых стендах довели до нужного уровня и в работу
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799391
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕХИДСТВО_ОН

Запустить на проблемных базах в профайлере и посмотреть, где, что и почему тормозить не судьба? Переустанавливать Oracle и заменять компы проще?

ilyuha111....когда велась разработка то не сразу все заработало
на тестовых стендах довели....
ilyuha111переустановка оракла помогает раз из 3х
замена компа помогает примерно 50/50
Интересно, сколько раз пришлось переустанавливать Oracle и заменять комп на тестовых базах, что бы "довести до нужного уровня" ?

Еще десять тысяч вёдер воды, синьор, — и золотой ключик у нас в кармане! ( C )

ЕХИДСТВО_ОФФ
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799434
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111Переформулирую
есть базы oracle 11xe 64bit и oracle 11xe 32bit операционистки от Winxp 32 до win10 64 примерно 200 баз
возраст с 01,05,2018 по сегодня (устанавливалось в течении полугода ) размер данных от 200М до 1000М
по неясным причинам в 20 базах запрос - select * from table(pk_salary.salary_view) order by 1 отрабатывает очень медленно (100-300 сек), в 180 базах 0,1-2 сек
пытались найти закономерности
проверяли:
операционистки
разрядность оракла 32-64
настройки памяти
содержимое зависимых от запроса таблиц
сбор статистики
количество строк в результате запроса от 1000 до 9000 в разных базах, нет закономерности
упрощали переписывали функцию
закономерностей не нашли

пытались :
сбор статистики не помогает
пересоздание зависимых таблиц не помогает
переустановка оракла помогает раз из 3х
замена компа помогает примерно 50/50
переписать запрос на SQL (без функции) помогает на 100%, но не учитывает сложную логику
создание временной таблицы (вставка из функции) работает, но её нужно часть обновлять (delete insrt примерно 3-5 минут и в это время запросы подтормаживают)
поднимали разные базы на дохлых компах (ATOM 1G оперативы hdd5200 ) все рано работает быстро примерно 5-10 сек


возможно мы не там ищем, такие запросы применять стали недавно так как раньше особой необходимости в них не было

фразу "план запроса" я так понимаю вы уже слышали? и даже писали
Осталось сравнить их не только по внешнему запросу, но и по запросам из пакетa
А как - гуглить по фразе trace in oracle
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799711
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да советы помогли есть запрос внутри функции с разными планами
содержимое всех таблиц одинаковое
вопрос почему отличаются планы ?
возможно каким то образом план запроса из одной базы перемести в другую?
ну или что ту вообще можно сделать ?

запрос
SELECT SR.SALARY_RULE_ID,
SR.SALARY_HEAD_ID,
SR.SALARY_RULE_NAME,
SRT.SALARY_RULE_TYPE_NAME,
SR.SALARY_RULE_PRIORITY,
SR.SALARY_RULE_PARALEL,
SR.SALARY_RULE_TYPE_ID,
SRPRO.PRODUCT_VALUE
FROM T_SALARY_RULE SR,
T_SALARY_HEAD SH,
T_SALARY_RULE_TYPE SRT,
T_SALARY_RULE_PRODUCT SRPRO,
T_SALARY_RULE_PARTNER SRP
WHERE SRT.SALARY_RULE_TYPE_ID = SR.SALARY_RULE_TYPE_ID
AND SR.SALARY_HEAD_ID = SH.SALARY_HEAD_ID
AND SRT.SALARY_RULE_TYPE_ID = SR.SALARY_RULE_TYPE_ID
AND SRP.SALARY_RULE_ID = SR.SALARY_RULE_ID
AND SRPRO.SALARY_RULE_ID = SR.SALARY_RULE_ID
AND SRPRO.PRODUCT_ID = :B2
AND SRP.PARTNER_ID = :B1
AND SRP.IS_DEL_FLAG = 0
AND SRPRO.IS_DEL_FLAG = 0
AND SR.IS_DEL_FLAG = 0
AND SH.IS_DEL_FLAG = 0
AND SH.DOCUMENT_STATUS_ID = 290102
AND TRUNC (SYSDATE) BETWEEN SR.SALARY_HEAD_DATE_START
AND COALESCE (SR.SALARY_HEAD_DATE_END,
SH.SALARY_HEAD_DATE_END)

ORDER BY SR.SALARY_RULE_PRIORITY


план с тормозами
Код: plaintext
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Plan hash value: 1701074962
 
-----------------------------------------------------------------------------------------------------------------
| Id  | Operation                          | Name                       | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                   |                            |    43 | 19436 |     3  (67)| 00:00:01 |
|   1 |  SORT ORDER BY                     |                            |    43 | 19436 |     3  (67)| 00:00:01 |
|   2 |   NESTED LOOPS                     |                            |       |       |            |          |
|   3 |    NESTED LOOPS                    |                            |    43 | 19436 |     2  (50)| 00:00:01 |
|   4 |     NESTED LOOPS                   |                            |    43 | 16641 |     2  (50)| 00:00:01 |
|   5 |      NESTED LOOPS                  |                            |  2571 |   851K|     2  (50)| 00:00:01 |
|   6 |       MERGE JOIN CARTESIAN         |                            |   136K|    11M|     1   (0)| 00:00:01 |
|*  7 |        TABLE ACCESS BY INDEX ROWID | T_SALARY_RULE_PARTNER      |    69 |  2691 |     1   (0)| 00:00:01 |
|*  8 |         INDEX RANGE SCAN           | IX_SRPAP_IS_DEL_FLAG       |    35 |       |     1   (0)| 00:00:01 |
|   9 |        BUFFER SORT                 |                            |  1974 |   100K|     0   (0)| 00:00:01 |
|* 10 |         TABLE ACCESS BY INDEX ROWID| T_SALARY_RULE_PRODUCT      |  1974 |   100K|     0   (0)| 00:00:01 |
|* 11 |          INDEX RANGE SCAN          | IX_SRP_IS_DEL_FLAG         |   789 |       |     0   (0)| 00:00:01 |
|* 12 |       TABLE ACCESS BY INDEX ROWID  | T_SALARY_RULE              |     1 |   248 |     0   (0)| 00:00:01 |
|* 13 |        INDEX RANGE SCAN            | IX_SR_IS_DEL_FLAG          |     1 |       |     0   (0)| 00:00:01 |
|* 14 |      TABLE ACCESS BY INDEX ROWID   | T_SALARY_HEAD              |     1 |    48 |     0   (0)| 00:00:01 |
|* 15 |       INDEX RANGE SCAN             | IX_SALH_DOCUMENT_STATUS_ID |     1 |       |     0   (0)| 00:00:01 |
|* 16 |     INDEX UNIQUE SCAN              | PK_SALARY_RULE_TYPE        |     1 |       |     0   (0)| 00:00:01 |
|  17 |    TABLE ACCESS BY INDEX ROWID     | T_SALARY_RULE_TYPE         |     1 |    65 |     0   (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   7 - filter("SRP"."PARTNER_ID"=TO_NUMBER(:B1))
   8 - access("SRP"."IS_DEL_FLAG"=0)
  10 - filter("SRPRO"."PRODUCT_ID"=TO_NUMBER(:B2))
  11 - access("SRPRO"."IS_DEL_FLAG"=0)
  12 - filter("SR"."SALARY_HEAD_DATE_START"<=TRUNC(SYSDATE@!) AND 
              "SRP"."SALARY_RULE_ID"="SR"."SALARY_RULE_ID" AND "SRPRO"."SALARY_RULE_ID"="SR"."SALARY_RULE_ID")
  13 - access("SR"."IS_DEL_FLAG"=0)
  14 - filter("SH"."IS_DEL_FLAG"=0 AND "SR"."SALARY_HEAD_ID"="SH"."SALARY_HEAD_ID" AND 
              COALESCE("SR"."SALARY_HEAD_DATE_END","SH"."SALARY_HEAD_DATE_END")>=TRUNC(SYSDATE@!))
  15 - access("SH"."DOCUMENT_STATUS_ID"=290102)
  16 - access("SRT"."SALARY_RULE_TYPE_ID"="SR"."SALARY_RULE_TYPE_ID")
 
Note
-----
   - dynamic sampling used for this statement (level=2)


план без тормозов
Код: plaintext
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.
32.
33.
34.
35.
36.
37.
38.
Plan hash value: 1494712299
 
----------------------------------------------------------------------------------------------------------------
| Id  | Operation                         | Name                       | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                  |                            |     1 |   125 |    11  (10)| 00:00:01 |
|   1 |  SORT ORDER BY                    |                            |     1 |   125 |    11  (10)| 00:00:01 |
|   2 |   NESTED LOOPS                    |                            |     1 |   125 |    10   (0)| 00:00:01 |
|   3 |    NESTED LOOPS                   |                            |     1 |   112 |     9   (0)| 00:00:01 |
|   4 |     NESTED LOOPS                  |                            |     1 |    92 |     8   (0)| 00:00:01 |
|   5 |      MERGE JOIN CARTESIAN         |                            |     2 |    74 |     6   (0)| 00:00:01 |
|*  6 |       TABLE ACCESS BY INDEX ROWID | T_SALARY_HEAD              |     1 |    20 |     2   (0)| 00:00:01 |
|*  7 |        INDEX RANGE SCAN           | IX_SALH_DOCUMENT_STATUS_ID |     4 |       |     1   (0)| 00:00:01 |
|   8 |       BUFFER SORT                 |                            |     2 |    34 |     4   (0)| 00:00:01 |
|*  9 |        TABLE ACCESS BY INDEX ROWID| T_SALARY_RULE_PRODUCT      |     2 |    34 |     4   (0)| 00:00:01 |
|* 10 |         INDEX RANGE SCAN          | IX_SRP_PRODUCT_ID          |     2 |       |     2   (0)| 00:00:01 |
|* 11 |      TABLE ACCESS BY INDEX ROWID  | T_SALARY_RULE              |     1 |    55 |     1   (0)| 00:00:01 |
|* 12 |       INDEX UNIQUE SCAN           | PK_SALARY_RULE             |     1 |       |     0   (0)| 00:00:01 |
|  13 |     TABLE ACCESS BY INDEX ROWID   | T_SALARY_RULE_TYPE         |     1 |    20 |     1   (0)| 00:00:01 |
|* 14 |      INDEX UNIQUE SCAN            | PK_SALARY_RULE_TYPE        |     1 |       |     0   (0)| 00:00:01 |
|* 15 |    INDEX RANGE SCAN               | UX_SRPAP                   |     1 |    13 |     1   (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   6 - filter("SH"."IS_DEL_FLAG"=0)
   7 - access("SH"."DOCUMENT_STATUS_ID"=290102)
   9 - filter("SRPRO"."IS_DEL_FLAG"=0)
  10 - access("SRPRO"."PRODUCT_ID"=TO_NUMBER(:B2))
  11 - filter("SR"."IS_DEL_FLAG"=0 AND "SR"."SALARY_HEAD_DATE_START"<=TRUNC(SYSDATE@!) AND 
              "SR"."SALARY_HEAD_ID"="SH"."SALARY_HEAD_ID" AND COALESCE("SR"."SALARY_HEAD_DATE_END","SH"."SALARY_HEAD_D
              ATE_END")>=TRUNC(SYSDATE@!))
  12 - access("SRPRO"."SALARY_RULE_ID"="SR"."SALARY_RULE_ID")
  14 - access("SRT"."SALARY_RULE_TYPE_ID"="SR"."SALARY_RULE_TYPE_ID")
  15 - access("SRP"."SALARY_RULE_ID"="SR"."SALARY_RULE_ID" AND "SRP"."IS_DEL_FLAG"=0 AND 
              "SRP"."PARTNER_ID"=TO_NUMBER(:B1))
       filter("SRP"."PARTNER_ID"=TO_NUMBER(:B1) AND "SRP"."IS_DEL_FLAG"=0)
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799718
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все вопрос решиться
кому интересно

1 починили сбор статистики
план поменялся на нормально но запрос отрабатывал долго

2 alter system flush shared_pool
выполнили команду и все заработало
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799725
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111все вопрос решиться
кому интересно ...
Вы сами хоть какие-то выводы сделали для себя или нет?
даже тегом
Код: plsql
1.
2.
3.
begin
  null;
end;

пользоваться не научились!
...
Рейтинг: 0 / 0
табличные конвейерные функции тормоза на разный базах
    #39799727
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex-lsВы сами хоть какие-то выводы сделали для себя или нет?Некогда. Суперкомпьютер из 200 узелков простаивает же.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / табличные конвейерные функции тормоза на разный базах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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