|
Помогите привязать нужный план к запросу..
|
|||
---|---|---|---|
#18+
Помогите пожалуйста.. Нужно для определенного запроса отключить индексы.. По документации для 12.1 делаю BEGIN -- SQL Text SYS.DBMS_SQLDIAG_INTERNAL.i_create_patch( sql_text => 'SELECT T0.IMITM, T0.IMSTKT, T1.SDKCOO, T1.SDDOCO, T1.SDDCTO, T1.SDLNID, T1.SDSFXO, T1.SDMCU, T1.SDCO, T1.SDITM, T1.SDAITM, T1.SDLOCN, T1.SDLOTN, T1.SDLNTY, T1.SDNXTR, T1.SDLTTR, T1.SDEMCU, T1.SDRLIT, T1.SDRKIT, T1.SDUOM, T1.SDUORG, T1.SDSOQS, T1.SDSOBK, T1.SDSOCN, T1.SDSONE, T1.SDQTYT, T1.SDCOMM, T1.SDOTQY, T1.SDUOM1, T1.SDUOM2, T1.SDSQOR, T1.SDSO02, T1.SDSO15, T1.SDSWMS, T1.SDCRCD, T1.SDPID, T1.SDDUAL, T1.SDBCRC, T1.SDALLOC FROM PRODDTA.F4101 T0,PRODDTA.F4211 T1 WHERE ( ( T1.SDSO02 = :KEY1 AND T1.SDSO15 = :KEY2 AND T1.SDNXTR < :KEY3 AND T0.IMSTKT <> :KEY4 AND T1.SDITM >= :KEY5 AND T1.SDITM <= :KEY6 ) ) AND ( T0.IMITM = T1.SDITM ) ORDER BY T1.SDMCU ASC,T1.SDITM ASC,T1.SDLOCN ASC,T1.SDLOTN ASC', hint_text => 'FULL(T0) FULL(T1)', name => 'PLAN_FOR_R5542996A'); END; / вроде все привязывается, но какая то фигня выходит, индексы используются.. Plan hash value: 1505045477 -------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | -------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 327 | 124K| 2747 (1)| 00:00:01 | | | | 1 | SORT ORDER BY | | 327 | 124K| 2747 (1)| 00:00:01 | | | |* 2 | FILTER | | | | | | | | | 3 | NESTED LOOPS | | 327 | 124K| 2746 (1)| 00:00:01 | | | | 4 | NESTED LOOPS | | 327 | 124K| 2746 (1)| 00:00:01 | | | |* 5 | TABLE ACCESS BY INDEX ROWID BATCHED| F4101 | 325 | 2600 | 80 (0)| 00:00:01 | | | |* 6 | INDEX RANGE SCAN | F4101_0 | 779 | | 1 (0)| 00:00:01 | | | | 7 | PARTITION RANGE ALL | | 1 | | 8 (0)| 00:00:01 | 1 | 15 | |* 8 | INDEX RANGE SCAN | F4211P_9 | 1 | | 8 (0)| 00:00:01 | 1 | 15 | |* 9 | TABLE ACCESS BY LOCAL INDEX ROWID | F4211 | 1 | 383 | 8 (0)| 00:00:01 | 1 | 1 | -------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - filter(TO_NUMBER(:KEY6)>=TO_NUMBER(:KEY5)) 5 - filter("T0"."IMSTKT"<>SYS_OP_C2C(:KEY4)) 6 - access("T0"."IMITM">=TO_NUMBER(:KEY5) AND "T0"."IMITM"<=TO_NUMBER(:KEY6)) 8 - access("T0"."IMITM"="T1"."SDITM") filter("T1"."SDITM">=TO_NUMBER(:KEY5) AND "T1"."SDITM"<=TO_NUMBER(:KEY6)) 9 - filter("T1"."SDNXTR"<SYS_OP_C2C(:KEY3) AND "T1"."SDSO02"=SYS_OP_C2C(:KEY1) AND "T1"."SDSO15"=SYS_OP_C2C(:KEY2)) Note ----- - SQL patch "PLAN_FOR_R5542996A" used for this statement - this is an adaptive plan ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 10:34 |
|
Помогите привязать нужный план к запросу..
|
|||
---|---|---|---|
#18+
ДенПо документации для 12.1 делаю Это неправда. Документация по 12.1 это: https://docs.oracle.com/database/121/nav/portal_booklist.htm Денвроде все привязывается, но какая то фигня выходит, индексы используются.. Нужно с query block указывать. Получить их через dbms_xplan.display% с format alias и/или outline. В sql patch использовать уже с query block, вида: full(@sel$1 t@sel$1) Редко JDE видно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 11:28 |
|
Помогите привязать нужный план к запросу..
|
|||
---|---|---|---|
#18+
SeaGate, ну да, на счет документации, погорячился) отсюда взял https://oracle-base.com/articles/11g/sql-repair-advisor-11g как я понял, я получаю для запроса с хинтом план и использовать оттуда в hint_text . спасибо! попробую. Query Block Name / Object Alias (identified by operation id): ------------------------------------------------------------- 1 - SEL$1 5 - SEL$1 / T0@SEL$1 8 - SEL$1 / T1@SEL$1 Outline Data ------------- /*+ BEGIN_OUTLINE_DATA PX_JOIN_FILTER(@"SEL$1" "T1"@"SEL$1") USE_HASH(@"SEL$1" "T1"@"SEL$1") LEADING(@"SEL$1" "T0"@"SEL$1" "T1"@"SEL$1") FULL(@"SEL$1" "T1"@"SEL$1") FULL(@"SEL$1" "T0"@"SEL$1") OUTLINE_LEAF(@"SEL$1") OPT_PARAM('optimizer_index_caching' 80) OPT_PARAM('optimizer_index_cost_adj' 20) DB_VERSION('12.1.0.2') OPTIMIZER_FEATURES_ENABLE('12.1.0.2') IGNORE_OPTIM_EMBEDDED_HINTS END_OUTLINE_DATA */ ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 11:40 |
|
Помогите привязать нужный план к запросу..
|
|||
---|---|---|---|
#18+
SeaGate ДенПо документации для 12.1 делаю Это неправда. Документация по 12.1 это: https://docs.oracle.com/database/121/nav/portal_booklist.htm Денвроде все привязывается, но какая то фигня выходит, индексы используются.. Нужно с query block указывать. Получить их через dbms_xplan.display% с format alias и/или outline. В sql patch использовать уже с query block, вида: full(@sel$1 t@sel$1) Редко JDE видно. Спасибо! получилось! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 11:41 |
|
|
start [/forum/topic.php?fid=52&msg=40102006&tid=1879851]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
220ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 240ms |
total: | 555ms |
0 / 0 |