ну это особенности ядра JD Edwards, при генерации sql запроса он всегда делает order by по PK
CREATE UNIQUE INDEX "PRODDTA"."F4106_0" ON "PRODDTA"."F4106" ("BPITM", "BPMCU", "BPLOCN", "BPLOTN", "BPAN8", "BPIGID", "BPCGID", "BPLOTG", "BPFRMP", "BPCRCD", "BPUOM", "BPEXDJ", "BPUPMJ", "BPTDAY") TABLESPACE "PRODDTAI"
План что по хорошему, что по плохому запросу - одинаковый..
Plan hash value: 4254410008
----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 212 | 2 (50)| 00:00:01 |
| 1 | SORT ORDER BY | | 1 | 212 | 2 (50)| 00:00:01 |
|* 2 | TABLE ACCESS BY INDEX ROWID| F4106 | 1 | 212 | 1 (0)| 00:00:01 |
|* 3 | INDEX RANGE SCAN | F4106_4 | 1 | | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter("BPEXDJ">=109145 AND "BPEFTJ"<=109145 AND "BPBSCD"=U' ')
3 - access("BPITM"=8280.000000 AND "BPMCU"=U' 101' AND "BPLOCN"=U'
' AND "BPLOTN"=U' ' AND "BPAN8"=0.000000 AND "BPIGID"=0.000000 AND
"BPCGID"=4.000000 AND "BPCRCD"=U'RUB' AND "BPUOM"=U'EA')
Но.. логи с сервера говорят, о другом времени выполнения плохого запроса..
Dec 02 09:42:42.479099 - 6864/5488 WRK:Starting jdeCallObject SELECT BPITM, BPMCU, BPLOCN, BPLOTN, BPAN8, BPIGID, BPCGID, BPLOTG, BPFRMP, BPCRCD, BPUOM, BPEFTJ, BPEXDJ, BPUPRC, BPACRD, BPBSCD, BPFRMN FROM PRODDTA.F4106 WHERE ( BPITM = 8280.000000 AND BPMCU = ' 101' AND BPLOCN = ' ' AND BPLOTN = ' ' AND BPAN8 = 0.000000 AND BPIGID = 0.000000 AND BPCGID = 4.000000 ) AND ( BPEXDJ >= 109145 AND BPEFTJ <= 109145 AND BPBSCD = ' ' AND BPCRCD = 'RUB' AND BPUOM = 'EA' ) ORDER BY BPITM ASC,BPMCU ASC,BPLOCN ASC,BPLOTN ASC,BPAN8 ASC,BPIGID ASC,BPCGID ASC,BPLOTG ASC,BPFRMP ASC,BPCRCD ASC,BPUOM ASC,BPEXDJ ASC,BPUPMJ DESC,BPTDAY DESC
Dec 02 09:42:54.604000 - 6864/5488 WRK:Starting jdeCallObject Exiting JDB_SelectKeyed with Success
видно что 12 сек выполнялся..