SQL相同 不同环境性能差异优化

现场 反馈 同一条sql测试库秒及响应,生产库需要6s

对比两个库的执行计划

测试库

explain plan for Select * From (select 发票序号i,(case when 发票序号i is null then '合计' when 发票序号 is null then '小计'else to_char(发票序号) end) as 发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,
数量,计量单位,执行单价,sum(执行金额) as 执行金额,套外否
from (select 发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,
sum(数量) as 数量,计量单位,执行单价,sum(执行金额) as 执行金额,套外否
From (
select 发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明, 数量,计量单位,执行单价,执行金额,套外否
from INQ_VD住院费用明细_发票
Where 住院序号i='355' And 处方序号i=0 
Union All
select 发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,数量,计量单位,执行单价,执行金额,套外否
from INQ_VD住院费用明细_处方明细
Where 住院序号i='355' 
) A 
group by 发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,计量单位,执行单价,套外否
) A group by grouping sets ((发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,数量,计量单位,执行单价,套外否), A.发票序号I,()

order by 发票序号i,发票顺序) T ;

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1352565963

-------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 28 | 73892 | 304 (2)| 00:00:04 |
| 1 | VIEW | | 28 | 73892 | 304 (2)| 00:00:04 |
| 2 | SORT ORDER BY | | 28 | 72212 | 304 (2)| 00:00:04 |
| 3 | SORT GROUP BY ROLLUP | | 28 | 72212 | 304 (2)| 00:00:04 |
| 4 | VIEW | | 28 | 72212 | 303 (1)| 00:00:04 |
| 5 | HASH GROUP BY | | 28 | 72212 | 303 (1)| 00:00:04 |
| 6 | VIEW | | 28 | 72212 | 302 (1)| 00:00:04 |
| 7 | UNION-ALL | | | | | |
|* 8 | HASH JOIN RIGHT OUTER | | 266 | 31122 | 156 (2)| 00:00:02 |
| 9 | VIEW | | 31 | 527 | 6 (17)| 00:00:01 |
| 10 | MERGE JOIN | | 31 | 713 | 6 (17)| 00:00:01 |
|* 11 | TABLE ACCESS BY INDEX ROWID | DOC_T发票项目 | 31 | 527 | 2 (0)| 00:00:01 |
| 12 | INDEX FULL SCAN | PK_T发票项目 | 31 | | 1 (0)| 00:00:01 |
|* 13 | SORT JOIN | | 31 | 186 | 4 (25)| 00:00:01 |
| 14 | TABLE ACCESS FULL | DOC_L发票对应费用 | 31 | 186 | 3 (0)| 00:00:01 |
| 15 | NESTED LOOPS OUTER | | 266 | 26600 | 150 (1)| 00:00:02 |
|* 16 | HASH JOIN | | 266 | 25802 | 150 (1)| 00:00:02 |
|* 17 | HASH JOIN | | 266 | 17290 | 116 (1)| 00:00:02 |
|* 18 | HASH JOIN OUTER | | 266 | 15162 | 96 (2)| 00:00:02 |
|* 19 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用明细 | 266 | 13300 | 85 (2)| 00:00:02 |
| 20 | BITMAP CONVERSION TO ROWIDS | | | | | |
| 21 | BITMAP AND | | | | | |
| 22 | BITMAP CONVERSION FROM ROWIDS | | | | | |
|* 23 | INDEX RANGE SCAN | IDX_120675_住院序 | 266 | | 1 (0)| 00:00:01 |
| 24 | BITMAP CONVERSION FROM ROWIDS | | | | | |
|* 25 | INDEX RANGE SCAN | IDX_120675_处方序 | 266 | | 39 (0)| 00:00:01 |
|* 26 | TABLE ACCESS FULL | DOC_T医嘱目录 | 929 | 6503 | 11 (0)| 00:00:01 |
| 27 | VIEW | index$_join$_013 | 4223 | 33784 | 20 (0)| 00:00:01 |
|* 28 | HASH JOIN | | | | | |
| 29 | INDEX FAST FULL SCAN | IDX_120118_项目序 | 4223 | 33784 | 13 (0)| 00:00:01 |
| 30 | INDEX FAST FULL SCAN | PK_T收费项目价格表| 4223 | 33784 | 13 (0)| 00:00:01 |
| 31 | TABLE ACCESS FULL | DOC_T收费项目 | 4087 | 127K| 34 (0)| 00:00:01 |
|* 32 | INDEX UNIQUE SCAN | PK_T费用类别 | 1 | 3 | 0 (0)| 00:00:01 |
| 33 | NESTED LOOPS OUTER | | 28 | 64764 | 146 (0)| 00:00:02 |
| 34 | VIEW | | 28 | 64568 | 146 (0)| 00:00:02 |
|* 35 | HASH JOIN | | 28 | 4340 | 146 (0)| 00:00:02 |
| 36 | NESTED LOOPS | | 28 | 4144 | 141 (0)| 00:00:02 |
| 37 | NESTED LOOPS | | 28 | 4144 | 141 (0)| 00:00:02 |
|* 38 | HASH JOIN OUTER | | 28 | 3892 | 113 (0)| 00:00:02 |
|* 39 | HASH JOIN OUTER | | 28 | 3500 | 110 (0)| 00:00:02 |
| 40 | NESTED LOOPS | | 28 | 3332 | 107 (0)| 00:00:02 |
| 41 | NESTED LOOPS | | 28 | 3332 | 107 (0)| 00:00:02 |
| 42 | NESTED LOOPS | | 28 | 3136 | 79 (0)| 00:00:01 |
|* 43 | HASH JOIN | | 42 | 1344 | 37 (0)| 00:00:01 |
|* 44 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用明细 | 42 | 1008 | 17 (0)| 00:00:01 |
|* 45 | INDEX RANGE SCAN | IDX_120675_住院序 | 42 | | 2 (0)| 00:00:01 |
| 46 | VIEW | index$_join$_061 | 4223 | 33784 | 20 (0)| 00:00:01 |
|* 47 | HASH JOIN | | | | | |
| 48 | INDEX FAST FULL SCAN | IDX_120118_项目序 | 4223 | 33784 | 13 (0)| 00:00:01 |
| 49 | INDEX FAST FULL SCAN | PK_T收费项目价格表| 4223 | 33784 | 13 (0)| 00:00:01 |
|* 50 | VIEW | | 1 | 80 | 1 (0)| 00:00:01 |
| 51 | UNION-ALL PARTITION | | | | | |
|* 52 | FILTER | | | | | |
| 53 | NESTED LOOPS | | 1 | 113 | 6 (0)| 00:00:01 |
| 54 | NESTED LOOPS | | 1 | 113 | 6 (0)| 00:00:01 |
| 55 | NESTED LOOPS | | 1 | 62 | 5 (0)| 00:00:01 |
| 56 | NESTED LOOPS | | 1 | 43 | 4 (0)| 00:00:01 |
|* 57 | TABLE ACCESS BY INDEX ROWID| DUG_D西药房住院处 | 1 | 8 | 2 (0)| 00:00:01 |
|* 58 | INDEX UNIQUE SCAN | PK_DUG_D西药房住院| 1 | | 1 (0)| 00:00:01 |
| 59 | TABLE ACCESS BY INDEX ROWID| DUG_D西药房住院处 | 1 | 35 | 2 (0)| 00:00:01 |
|* 60 | INDEX RANGE SCAN | IK_D西药住院处方明| 1 | | 1 (0)| 00:00:01 |
| 61 | TABLE ACCESS BY INDEX ROWID | DOC_T药品目录_价格| 1 | 19 | 1 (0)| 00:00:01 |
|* 62 | INDEX UNIQUE SCAN | PK_T药品目录_价格 | 1 | | 0 (0)| 00:00:01 |
|* 63 | INDEX UNIQUE SCAN | PK_T药品目录 | 1 | | 0 (0)| 00:00:01 |
| 64 | TABLE ACCESS BY INDEX ROWID | DOC_T药品目录 | 1 | 51 | 1 (0)| 00:00:01 |
|* 65 | FILTER | | | | | |
| 66 | NESTED LOOPS | | 2 | 164 | 6 (0)| 00:00:01 |
| 67 | NESTED LOOPS | | 2 | 164 | 6 (0)| 00:00:01 |
| 68 | NESTED LOOPS | | 2 | 94 | 4 (0)| 00:00:01 |
| 69 | NESTED LOOPS | | 2 | 60 | 2 (0)| 00:00:01 |
|* 70 | TABLE ACCESS BY INDEX ROWID| DUG_D中药房住院处 | 1 | 10 | 1 (0)| 00:00:01 |
|* 71 | INDEX UNIQUE SCAN | PK_D中药房住院处方| 1 | | 0 (0)| 00:00:01 |
| 72 | TABLE ACCESS BY INDEX ROWID| DUG_D中药房住院处 | 2 | 40 | 1 (0)| 00:00:01 |
|* 73 | INDEX RANGE SCAN | IDX_120313_单据序 | 2 | | 0 (0)| 00:00:01 |
| 74 | TABLE ACCESS BY INDEX ROWID | DOC_T中药目录_价格| 1 | 17 | 1 (0)| 00:00:01 |
|* 75 | INDEX UNIQUE SCAN | PK_T中药目录_价格 | 1 | | 0 (0)| 00:00:01 |
|* 76 | INDEX UNIQUE SCAN | PK_T中药目录 | 1 | | 0 (0)| 00:00:01 |
| 77 | TABLE ACCESS BY INDEX ROWID | DOC_T中药目录 | 1 | 35 | 1 (0)| 00:00:01 |
|* 78 | INDEX UNIQUE SCAN | PK_T收费项目 | 1 | | 0 (0)| 00:00:01 |
| 79 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目 | 1 | 7 | 1 (0)| 00:00:01 |
| 80 | TABLE ACCESS FULL | DOC_L发票对应费用 | 31 | 186 | 3 (0)| 00:00:01 |
| 81 | TABLE ACCESS FULL | DOC_T发票项目 | 31 | 434 | 3 (0)| 00:00:01 |
|* 82 | INDEX UNIQUE SCAN | PK_INQ_D住院费用列| 1 | | 0 (0)| 00:00:01 |
| 83 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用列表 | 1 | 9 | 1 (0)| 00:00:01 |
| 84 | TABLE ACCESS FULL | INQ_D住院档案 | 166 | 1162 | 5 (0)| 00:00:01 |
|* 85 | INDEX UNIQUE SCAN | UK_费别价格关联表 | 1 | 7 | 0 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

8 - access("FP"."类别序号I"(+)="L"."系统序号")
11 - filter("P1"."适用对象N"<>1)
13 - access("P1"."系统序号"="P2"."发票序号I")
filter("P1"."系统序号"="P2"."发票序号I")
16 - access("XM"."系统序号"="C"."项目序号I")
17 - access("C"."系统序号"="A"."收费项目序号I")
18 - access("B"."系统序号"(+)="A"."打包序号I")
19 - filter("A"."开单医师R" IS NOT NULL AND "A"."开单科室I" IS NOT NULL AND "A"."单据序号I" IS NOT NULL)
23 - access("A"."住院序号I"=355)
25 - access("A"."处方序号I"=0)
26 - filter("B"."打包否B"(+)=1)
28 - access(ROWID=ROWID)
32 - access("L"."系统序号"(+)="XM"."费用类别I")
35 - access("C"."住院序号I"="DA"."系统序号")
38 - access("FP"."系统序号"(+)="LB"."发票序号I")
39 - access("XM"."费用类别I"="LB"."类别序号I"(+))
43 - access("E"."系统序号"="A"."收费项目序号I")
44 - filter("A"."开单科室I" IS NOT NULL AND "A"."开单医师R" IS NOT NULL)
45 - access("A"."住院序号I"=355 AND "A"."处方序号I">0)
filter("A"."处方序号I">0)
47 - access(ROWID=ROWID)
50 - filter("A"."处方类型"=SYS_OP_C2C("B"."处方类型"))
52 - filter(0<"A"."处方序号I")
57 - filter("A"."记账否B"=1)
58 - access("A"."系统序号"="A"."处方序号I")
filter("A"."系统序号">0)
60 - access("B"."单据序号I"="A"."处方序号I")
filter("B"."单据序号I">0 AND "A"."系统序号"="B"."单据序号I")
62 - access("C"."系统序号"="B"."药品序号I")
63 - access("D"."系统序号"="C"."药品目录序号I")
65 - filter(0<"A"."处方序号I")
70 - filter("A"."记账否B"=1)
71 - access("A"."系统序号"="A"."处方序号I")
filter("A"."系统序号">0)
73 - access("B"."单据序号I"="A"."处方序号I")
filter("B"."单据序号I">0 AND "A"."系统序号"="B"."单据序号I")
75 - access("C"."系统序号"="B"."药品序号I")
76 - access("D"."系统序号"="C"."药品目录序号I")
78 - access("XM"."系统序号"="E"."项目序号I")
82 - access("A"."单据序号I"="C"."系统序号")
85 - access("FB"."价格序号I"(+)="A"."收费项目序号I" AND "DA"."病员费别I"="FB"."病人费别I"(+)) 

生产库

explain plan for Select * From (select 发票序号i,(case when 发票序号i is null then '合计' when 发票序号 is null then '小计'else to_char(发票序号) end) as 发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,
数量,计量单位,执行单价,sum(执行金额) as 执行金额,套外否
from (select 发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,
sum(数量) as 数量,计量单位,执行单价,sum(执行金额) as 执行金额,套外否
From (
select 发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明, 数量,计量单位,执行单价,执行金额,套外否
from INQ_VD住院费用明细_发票
Where 住院序号i='355' And 处方序号i=0 
Union All
select 发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,数量,计量单位,执行单价,执行金额,套外否
from INQ_VD住院费用明细_处方明细
Where 住院序号i='355' 
) A 
group by 发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,计量单位,执行单价,套外否
) A group by grouping sets ((发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,数量,计量单位,执行单价,套外否), A.发票序号I,()

order by 发票序号i,发票顺序) T ;

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3127209674

-----------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 5278 | 4 (50)| 00:00:01 |
| 1 | VIEW | | 2 | 5278 | 4 (50)| 00:00:01 |
| 2 | SORT ORDER BY | | 2 | 5158 | 4 (50)| 00:00:01 |
| 3 | SORT GROUP BY ROLLUP | | 2 | 5158 | 4 (50)| 00:00:01 |
| 4 | VIEW | | 2 | 5158 | 3 (34)| 00:00:01 |
| 5 | HASH GROUP BY | | 2 | 5158 | 3 (34)| 00:00:01 |
| 6 | VIEW | | 2 | 5158 | 2 (0)| 00:00:01 |
| 7 | UNION-ALL | | | | | |
| 8 | NESTED LOOPS OUTER | | 1 | 344 | 1 (0)| 00:00:01 |
| 9 | NESTED LOOPS OUTER | | 1 | 318 | 1 (0)| 00:00:01 |
| 10 | NESTED LOOPS | | 1 | 315 | 1 (0)| 00:00:01 |
| 11 | NESTED LOOPS OUTER | | 1 | 177 | 0 (0)| 00:00:01 |
| 12 | NESTED LOOPS | | 1 | 151 | 0 (0)| 00:00:01 |
|* 13 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用明细 | 1 | 143 | 0 (0)| 00:00:01 |
|* 14 | INDEX FULL SCAN | IDX_120675_单据序 | 1 | | 0 (0)| 00:00:01 |
| 15 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目价格 | 1 | 8 | 0 (0)| 00:00:01 |
|* 16 | INDEX UNIQUE SCAN | PK_T收费项目价格表| 1 | | 0 (0)| 00:00:01 |
|* 17 | TABLE ACCESS BY INDEX ROWID | DOC_T医嘱目录 | 1 | 26 | 0 (0)| 00:00:01 |
|* 18 | INDEX UNIQUE SCAN | PK_T医嘱目录 | 1 | | 0 (0)| 00:00:01 |
| 19 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目 | 1 | 138 | 1 (0)| 00:00:01 |
|* 20 | INDEX UNIQUE SCAN | PK_T收费项目 | 1 | | 0 (0)| 00:00:01 |
|* 21 | INDEX UNIQUE SCAN | PK_T费用类别 | 1 | 3 | 0 (0)| 00:00:01 |
| 22 | VIEW PUSHED PREDICATE | | 1 | 26 | 0 (0)| 00:00:01 |
| 23 | NESTED LOOPS | | 1 | 41 | 1 (0)| 00:00:01 |
| 24 | NESTED LOOPS | | 1 | 41 | 1 (0)| 00:00:01 |
| 25 | TABLE ACCESS BY INDEX ROWID | DOC_L发票对应费用 | 1 | 26 | 1 (0)| 00:00:01 |
|* 26 | INDEX RANGE SCAN | IDX_119988_类别序 | 1 | | 1 (0)| 00:00:01 |
|* 27 | INDEX UNIQUE SCAN | PK_T发票项目 | 1 | | 0 (0)| 00:00:01 |
|* 28 | TABLE ACCESS BY INDEX ROWID | DOC_T发票项目 | 1 | 15 | 0 (0)| 00:00:01 |
| 29 | NESTED LOOPS OUTER | | 1 | 2313 | 1 (0)| 00:00:01 |
| 30 | VIEW | | 1 | 2306 | 1 (0)| 00:00:01 |
| 31 | NESTED LOOPS OUTER | | 1 | 2386 | 1 (0)| 00:00:01 |
| 32 | NESTED LOOPS OUTER | | 1 | 2373 | 1 (0)| 00:00:01 |
| 33 | NESTED LOOPS | | 1 | 2347 | 1 (0)| 00:00:01 |
| 34 | NESTED LOOPS | | 1 | 2340 | 0 (0)| 00:00:01 |
| 35 | NESTED LOOPS | | 1 | 2332 | 0 (0)| 00:00:01 |
| 36 | NESTED LOOPS | | 1 | 2306 | 0 (0)| 00:00:01 |
| 37 | NESTED LOOPS | | 1 | 2280 | 0 (0)| 00:00:01 |
| 38 | VIEW | | 1 | 2198 | 0 (0)| 00:00:01 |
| 39 | UNION-ALL | | | | | |
| 40 | NESTED LOOPS | | 1 | 281 | 1 (0)| 00:00:01 |
| 41 | NESTED LOOPS | | 1 | 281 | 1 (0)| 00:00:01 |
| 42 | NESTED LOOPS | | 1 | 131 | 0 (0)| 00:00:01 |
| 43 | NESTED LOOPS | | 1 | 104 | 0 (0)| 00:00:01 |
|* 44 | TABLE ACCESS BY INDEX ROWID| DUG_D西药房住院处 | 1 | 26 | 0 (0)| 00:00:01 |
|* 45 | INDEX RANGE SCAN | PK_DUG_D西药房住院| 1 | | 0 (0)| 00:00:01 |
| 46 | TABLE ACCESS BY INDEX ROWID| DUG_D西药房住院处 | 1 | 78 | 0 (0)| 00:00:01 |
|* 47 | INDEX RANGE SCAN | IK_D西药住院处方明| 1 | | 0 (0)| 00:00:01 |
| 48 | TABLE ACCESS BY INDEX ROWID | DOC_T药品目录_价格| 1 | 27 | 0 (0)| 00:00:01 |
|* 49 | INDEX UNIQUE SCAN | PK_T药品目录_价格 | 1 | | 0 (0)| 00:00:01 |
|* 50 | INDEX UNIQUE SCAN | PK_T药品目录 | 1 | | 0 (0)| 00:00:01 |
| 51 | TABLE ACCESS BY INDEX ROWID | DOC_T药品目录 | 1 | 150 | 1 (0)| 00:00:01 |
| 52 | NESTED LOOPS | | 1 | 161 | 1 (0)| 00:00:01 |
| 53 | NESTED LOOPS | | 1 | 161 | 1 (0)| 00:00:01 |
| 54 | NESTED LOOPS | | 1 | 121 | 0 (0)| 00:00:01 |
| 55 | NESTED LOOPS | | 1 | 104 | 0 (0)| 00:00:01 |
|* 56 | TABLE ACCESS BY INDEX ROWID| DUG_D中药房住院处 | 1 | 39 | 0 (0)| 00:00:01 |
|* 57 | INDEX RANGE SCAN | PK_D中药房住院处方| 1 | | 0 (0)| 00:00:01 |
| 58 | TABLE ACCESS BY INDEX ROWID| DUG_D中药房住院处 | 1 | 65 | 0 (0)| 00:00:01 |
|* 59 | INDEX RANGE SCAN | IDX_120313_单据序 | 1 | | 0 (0)| 00:00:01 |
| 60 | TABLE ACCESS BY INDEX ROWID | DOC_T中药目录_价格| 1 | 17 | 0 (0)| 00:00:01 |
|* 61 | INDEX UNIQUE SCAN | PK_T中药目录_价格 | 1 | | 0 (0)| 00:00:01 |
|* 62 | INDEX UNIQUE SCAN | PK_T中药目录 | 1 | | 0 (0)| 00:00:01 |
| 63 | TABLE ACCESS BY INDEX ROWID | DOC_T中药目录 | 1 | 40 | 1 (0)| 00:00:01 |
|* 64 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用明细 | 1 | 82 | 0 (0)| 00:00:01 |
|* 65 | INDEX RANGE SCAN | IDX_120675_住院序 | 1 | | 0 (0)| 00:00:01 |
| 66 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用列表 | 1 | 26 | 0 (0)| 00:00:01 |
|* 67 | INDEX UNIQUE SCAN | PK_INQ_D住院费用列| 1 | | 0 (0)| 00:00:01 |
| 68 | TABLE ACCESS BY INDEX ROWID | INQ_D住院档案 | 1 | 26 | 0 (0)| 00:00:01 |
|* 69 | INDEX UNIQUE SCAN | PK_INQ_D住院档案 | 1 | | 0 (0)| 00:00:01 |
| 70 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目价格 | 1 | 8 | 0 (0)| 00:00:01 |
|* 71 | INDEX UNIQUE SCAN | PK_T收费项目价格表| 1 | | 0 (0)| 00:00:01 |
| 72 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目 | 1 | 7 | 1 (0)| 00:00:01 |
|* 73 | INDEX UNIQUE SCAN | PK_T收费项目 | 1 | | 0 (0)| 00:00:01 |
| 74 | TABLE ACCESS BY INDEX ROWID | DOC_L发票对应费用 | 1 | 26 | 0 (0)| 00:00:01 |
|* 75 | INDEX RANGE SCAN | IDX_119988_类别序 | 1 | | 0 (0)| 00:00:01 |
| 76 | TABLE ACCESS BY INDEX ROWID | DOC_T发票项目 | 1 | 13 | 0 (0)| 00:00:01 |
|* 77 | INDEX UNIQUE SCAN | PK_T发票项目 | 1 | | 0 (0)| 00:00:01 |
|* 78 | INDEX UNIQUE SCAN | UK_费别价格关联表 | 1 | 7 | 0 (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

13 - filter("A"."开单医师R" IS NOT NULL AND "A"."开单科室I" IS NOT NULL AND "A"."住院序号I"=355 AND "A"."处方序号I"=0)
14 - filter("A"."单据序号I" IS NOT NULL)
16 - access("C"."系统序号"="A"."收费项目序号I")
17 - filter("B"."打包否B"(+)=1)
18 - access("B"."系统序号"(+)="A"."打包序号I")
20 - access("XM"."系统序号"="C"."项目序号I")
21 - access("L"."系统序号"(+)="XM"."费用类别I")
26 - access("P2"."类别序号I"="L"."系统序号")
27 - access("P1"."系统序号"="P2"."发票序号I")
28 - filter("P1"."适用对象N"<>1)
44 - filter("A"."记账否B"=1)
45 - access("A"."系统序号">0)
47 - access("A"."系统序号"="B"."单据序号I")
filter("B"."单据序号I">0)
49 - access("C"."系统序号"="B"."药品序号I")
50 - access("D"."系统序号"="C"."药品目录序号I")
56 - filter("A"."记账否B"=1)
57 - access("A"."系统序号">0)
59 - access("A"."系统序号"="B"."单据序号I")
filter("B"."单据序号I">0)
61 - access("C"."系统序号"="B"."药品序号I")
62 - access("D"."系统序号"="C"."药品目录序号I")
64 - filter("A"."开单科室I" IS NOT NULL AND "A"."开单医师R" IS NOT NULL AND "A"."处方序号I">0 AND "A"."处方序号I"="B"."系统
AND "A"."处方类型"=SYS_OP_C2C("B"."处方类型"))
65 - access("A"."住院序号I"=355)
67 - access("A"."单据序号I"="C"."系统序号")
69 - access("C"."住院序号I"="DA"."系统序号")
71 - access("E"."系统序号"="A"."收费项目序号I")
73 - access("XM"."系统序号"="E"."项目序号I")
75 - access("XM"."费用类别I"="LB"."类别序号I"(+))
77 - access("FP"."系统序号"(+)="LB"."发票序号I")
78 - access("FB"."价格序号I"(+)="A"."收费项目序号I" AND "DA"."病员费别I"="FB"."病人费别I"(+))

已选择121行。
对比执行计划  起初怀疑 谓词推入导致,使用hint 禁止谓词推入 后,效果没变

再次比较 快执行计划 使用 hash join outer  慢的使用nest loop 

还是按照自己的思路弄吧

发现这条语句加where 条件慢,不加秒出

select 发票序号i,发票序号,发票顺序,收费项目序号i,收费项目序号,规格说明,数量,计量单位,执行单价,执行金额,套外否
from INQ_VD住院费用明细_处方明细
Where 住院序号i='355' 

怀疑走错索引

create index IDX_120675_住院序号I on INQ_D住院费用明细 (住院序号I)
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);

drop index IDX_120675_住院序号I ;

删除索引 后 重建索引

执行计划居然变成了hash join outer  效果秒出 .

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3127209674

-----------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 5278 | 4 (50)| 00:00:01 |
| 1 | VIEW | | 2 | 5278 | 4 (50)| 00:00:01 |
| 2 | SORT ORDER BY | | 2 | 5158 | 4 (50)| 00:00:01 |
| 3 | SORT GROUP BY ROLLUP | | 2 | 5158 | 4 (50)| 00:00:01 |
| 4 | VIEW | | 2 | 5158 | 3 (34)| 00:00:01 |
| 5 | HASH GROUP BY | | 2 | 5158 | 3 (34)| 00:00:01 |
| 6 | VIEW | | 2 | 5158 | 2 (0)| 00:00:01 |
| 7 | UNION-ALL | | | | | |
| 8 | NESTED LOOPS OUTER | | 1 | 344 | 1 (0)| 00:00:01 |
| 9 | NESTED LOOPS OUTER | | 1 | 318 | 1 (0)| 00:00:01 |
| 10 | NESTED LOOPS | | 1 | 315 | 1 (0)| 00:00:01 |
| 11 | NESTED LOOPS OUTER | | 1 | 177 | 0 (0)| 00:00:01 |
| 12 | NESTED LOOPS | | 1 | 151 | 0 (0)| 00:00:01 |
|* 13 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用明细 | 1 | 143 | 0 (0)| 00:00:01 |
|* 14 | INDEX FULL SCAN | IDX_120675_单据序 | 1 | | 0 (0)| 00:00:01 |
| 15 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目价格 | 1 | 8 | 0 (0)| 00:00:01 |
|* 16 | INDEX UNIQUE SCAN | PK_T收费项目价格表| 1 | | 0 (0)| 00:00:01 |
|* 17 | TABLE ACCESS BY INDEX ROWID | DOC_T医嘱目录 | 1 | 26 | 0 (0)| 00:00:01 |
|* 18 | INDEX UNIQUE SCAN | PK_T医嘱目录 | 1 | | 0 (0)| 00:00:01 |
| 19 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目 | 1 | 138 | 1 (0)| 00:00:01 |
|* 20 | INDEX UNIQUE SCAN | PK_T收费项目 | 1 | | 0 (0)| 00:00:01 |
|* 21 | INDEX UNIQUE SCAN | PK_T费用类别 | 1 | 3 | 0 (0)| 00:00:01 |
| 22 | VIEW PUSHED PREDICATE | | 1 | 26 | 0 (0)| 00:00:01 |
| 23 | NESTED LOOPS | | 1 | 41 | 1 (0)| 00:00:01 |
| 24 | NESTED LOOPS | | 1 | 41 | 1 (0)| 00:00:01 |
| 25 | TABLE ACCESS BY INDEX ROWID | DOC_L发票对应费用 | 1 | 26 | 1 (0)| 00:00:01 |
|* 26 | INDEX RANGE SCAN | IDX_119988_类别序 | 1 | | 1 (0)| 00:00:01 |
|* 27 | INDEX UNIQUE SCAN | PK_T发票项目 | 1 | | 0 (0)| 00:00:01 |
|* 28 | TABLE ACCESS BY INDEX ROWID | DOC_T发票项目 | 1 | 15 | 0 (0)| 00:00:01 |
| 29 | NESTED LOOPS OUTER | | 1 | 2313 | 1 (0)| 00:00:01 |
| 30 | VIEW | | 1 | 2306 | 1 (0)| 00:00:01 |
| 31 | NESTED LOOPS OUTER | | 1 | 2386 | 1 (0)| 00:00:01 |
| 32 | NESTED LOOPS OUTER | | 1 | 2373 | 1 (0)| 00:00:01 |
| 33 | NESTED LOOPS | | 1 | 2347 | 1 (0)| 00:00:01 |
| 34 | NESTED LOOPS | | 1 | 2340 | 0 (0)| 00:00:01 |
| 35 | NESTED LOOPS | | 1 | 2332 | 0 (0)| 00:00:01 |
| 36 | NESTED LOOPS | | 1 | 2306 | 0 (0)| 00:00:01 |
| 37 | NESTED LOOPS | | 1 | 2280 | 0 (0)| 00:00:01 |
| 38 | VIEW | | 1 | 2198 | 0 (0)| 00:00:01 |
| 39 | UNION-ALL | | | | | |
| 40 | NESTED LOOPS | | 1 | 281 | 1 (0)| 00:00:01 |
| 41 | NESTED LOOPS | | 1 | 281 | 1 (0)| 00:00:01 |
| 42 | NESTED LOOPS | | 1 | 131 | 0 (0)| 00:00:01 |
| 43 | NESTED LOOPS | | 1 | 104 | 0 (0)| 00:00:01 |
|* 44 | TABLE ACCESS BY INDEX ROWID| DUG_D西药房住院处 | 1 | 26 | 0 (0)| 00:00:01 |
|* 45 | INDEX RANGE SCAN | PK_DUG_D西药房住院| 1 | | 0 (0)| 00:00:01 |
| 46 | TABLE ACCESS BY INDEX ROWID| DUG_D西药房住院处 | 1 | 78 | 0 (0)| 00:00:01 |
|* 47 | INDEX RANGE SCAN | IK_D西药住院处方明| 1 | | 0 (0)| 00:00:01 |
| 48 | TABLE ACCESS BY INDEX ROWID | DOC_T药品目录_价格| 1 | 27 | 0 (0)| 00:00:01 |
|* 49 | INDEX UNIQUE SCAN | PK_T药品目录_价格 | 1 | | 0 (0)| 00:00:01 |
|* 50 | INDEX UNIQUE SCAN | PK_T药品目录 | 1 | | 0 (0)| 00:00:01 |
| 51 | TABLE ACCESS BY INDEX ROWID | DOC_T药品目录 | 1 | 150 | 1 (0)| 00:00:01 |
| 52 | NESTED LOOPS | | 1 | 161 | 1 (0)| 00:00:01 |
| 53 | NESTED LOOPS | | 1 | 161 | 1 (0)| 00:00:01 |
| 54 | NESTED LOOPS | | 1 | 121 | 0 (0)| 00:00:01 |
| 55 | NESTED LOOPS | | 1 | 104 | 0 (0)| 00:00:01 |
|* 56 | TABLE ACCESS BY INDEX ROWID| DUG_D中药房住院处 | 1 | 39 | 0 (0)| 00:00:01 |
|* 57 | INDEX RANGE SCAN | PK_D中药房住院处方| 1 | | 0 (0)| 00:00:01 |
| 58 | TABLE ACCESS BY INDEX ROWID| DUG_D中药房住院处 | 1 | 65 | 0 (0)| 00:00:01 |
|* 59 | INDEX RANGE SCAN | IDX_120313_单据序 | 1 | | 0 (0)| 00:00:01 |
| 60 | TABLE ACCESS BY INDEX ROWID | DOC_T中药目录_价格| 1 | 17 | 0 (0)| 00:00:01 |
|* 61 | INDEX UNIQUE SCAN | PK_T中药目录_价格 | 1 | | 0 (0)| 00:00:01 |
|* 62 | INDEX UNIQUE SCAN | PK_T中药目录 | 1 | | 0 (0)| 00:00:01 |
| 63 | TABLE ACCESS BY INDEX ROWID | DOC_T中药目录 | 1 | 40 | 1 (0)| 00:00:01 |
|* 64 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用明细 | 1 | 82 | 0 (0)| 00:00:01 |
|* 65 | INDEX RANGE SCAN | IDX_120675_住院序 | 1 | | 0 (0)| 00:00:01 |
| 66 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用列表 | 1 | 26 | 0 (0)| 00:00:01 |
|* 67 | INDEX UNIQUE SCAN | PK_INQ_D住院费用列| 1 | | 0 (0)| 00:00:01 |
| 68 | TABLE ACCESS BY INDEX ROWID | INQ_D住院档案 | 1 | 26 | 0 (0)| 00:00:01 |
|* 69 | INDEX UNIQUE SCAN | PK_INQ_D住院档案 | 1 | | 0 (0)| 00:00:01 |
| 70 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目价格 | 1 | 8 | 0 (0)| 00:00:01 |
|* 71 | INDEX UNIQUE SCAN | PK_T收费项目价格表| 1 | | 0 (0)| 00:00:01 |
| 72 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目 | 1 | 7 | 1 (0)| 00:00:01 |
|* 73 | INDEX UNIQUE SCAN | PK_T收费项目 | 1 | | 0 (0)| 00:00:01 |
| 74 | TABLE ACCESS BY INDEX ROWID | DOC_L发票对应费用 | 1 | 26 | 0 (0)| 00:00:01 |
|* 75 | INDEX RANGE SCAN | IDX_119988_类别序 | 1 | | 0 (0)| 00:00:01 |
| 76 | TABLE ACCESS BY INDEX ROWID | DOC_T发票项目 | 1 | 13 | 0 (0)| 00:00:01 |
|* 77 | INDEX UNIQUE SCAN | PK_T发票项目 | 1 | | 0 (0)| 00:00:01 |
|* 78 | INDEX UNIQUE SCAN | UK_费别价格关联表 | 1 | 7 | 0 (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

13 - filter("A"."开单医师R" IS NOT NULL AND "A"."开单科室I" IS NOT NULL AND "A"."住院序号I"=355 AND "A"."处方序号I"=0)
14 - filter("A"."单据序号I" IS NOT NULL)
16 - access("C"."系统序号"="A"."收费项目序号I")
17 - filter("B"."打包否B"(+)=1)
18 - access("B"."系统序号"(+)="A"."打包序号I")
20 - access("XM"."系统序号"="C"."项目序号I")
21 - access("L"."系统序号"(+)="XM"."费用类别I")
26 - access("P2"."类别序号I"="L"."系统序号")
27 - access("P1"."系统序号"="P2"."发票序号I")
28 - filter("P1"."适用对象N"<>1)
44 - filter("A"."记账否B"=1)
45 - access("A"."系统序号">0)
47 - access("A"."系统序号"="B"."单据序号I")
filter("B"."单据序号I">0)
49 - access("C"."系统序号"="B"."药品序号I")
50 - access("D"."系统序号"="C"."药品目录序号I")
56 - filter("A"."记账否B"=1)
57 - access("A"."系统序号">0)
59 - access("A"."系统序号"="B"."单据序号I")
filter("B"."单据序号I">0)
61 - access("C"."系统序号"="B"."药品序号I")
62 - access("D"."系统序号"="C"."药品目录序号I")
64 - filter("A"."开单科室I" IS NOT NULL AND "A"."开单医师R" IS NOT NULL AND "A"."处方序号I">0 AND "A"."处方序号I"="B"."系统
AND "A"."处方类型"=SYS_OP_C2C("B"."处方类型"))
65 - access("A"."住院序号I"=355)
67 - access("A"."单据序号I"="C"."系统序号")
69 - access("C"."住院序号I"="DA"."系统序号")
71 - access("E"."系统序号"="A"."收费项目序号I")
73 - access("XM"."系统序号"="E"."项目序号I")
75 - access("XM"."费用类别I"="LB"."类别序号I"(+))
77 - access("FP"."系统序号"(+)="LB"."发票序号I")
78 - access("FB"."价格序号I"(+)="A"."收费项目序号I" AND "DA"."病员费别I"="FB"."病人费别I"(+))

已选择121行。


------------------------------------------------------------------------------------------------------------------------------------
SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3216286524

---------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 5278 | 6 (34)| 00:00:01 |
| 1 | VIEW | | 2 | 5278 | 6 (34)| 00:00:01 |
| 2 | SORT ORDER BY | | 2 | 5158 | 6 (34)| 00:00:01 |
| 3 | SORT GROUP BY ROLLUP | | 2 | 5158 | 6 (34)| 00:00:01 |
| 4 | VIEW | | 2 | 5158 | 5 (20)| 00:00:01 |
| 5 | HASH GROUP BY | | 2 | 5158 | 5 (20)| 00:00:01 |
| 6 | VIEW | | 2 | 5158 | 4 (0)| 00:00:01 |
| 7 | UNION-ALL | | | | | |
|* 8 | HASH JOIN OUTER | | 1 | 419 | 3 (0)| 00:00:01 |
| 9 | NESTED LOOPS OUTER | | 1 | 318 | 1 (0)| 00:00:01 |
| 10 | NESTED LOOPS | | 1 | 315 | 1 (0)| 00:00:01 |
| 11 | NESTED LOOPS OUTER | | 1 | 177 | 0 (0)| 00:00:01 |
| 12 | NESTED LOOPS | | 1 | 151 | 0 (0)| 00:00:01 |
|* 13 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用明细 | 1 | 143 | 0 (0)| 00:00:01 |
|* 14 | INDEX FULL SCAN | IDX_120675_单据序 | 1 | | 0 (0)| 00:00:01 |
| 15 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目价格 | 1 | 8 | 0 (0)| 00:00:01 |
|* 16 | INDEX UNIQUE SCAN | PK_T收费项目价格表| 1 | | 0 (0)| 00:00:01 |
|* 17 | TABLE ACCESS BY INDEX ROWID | DOC_T医嘱目录 | 1 | 26 | 0 (0)| 00:00:01 |
|* 18 | INDEX UNIQUE SCAN | PK_T医嘱目录 | 1 | | 0 (0)| 00:00:01 |
| 19 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目 | 1 | 138 | 1 (0)| 00:00:01 |
|* 20 | INDEX UNIQUE SCAN | PK_T收费项目 | 1 | | 0 (0)| 00:00:01 |
|* 21 | INDEX UNIQUE SCAN | PK_T费用类别 | 1 | 3 | 0 (0)| 00:00:01 |
| 22 | VIEW | | 1 | 101 | 2 (0)| 00:00:01 |
| 23 | NESTED LOOPS | | 1 | 41 | 2 (0)| 00:00:01 |
| 24 | NESTED LOOPS | | 1 | 41 | 2 (0)| 00:00:01 |
| 25 | TABLE ACCESS FULL | DOC_L发票对应费用 | 1 | 26 | 2 (0)| 00:00:01 |
|* 26 | INDEX UNIQUE SCAN | PK_T发票项目 | 1 | | 0 (0)| 00:00:01 |
|* 27 | TABLE ACCESS BY INDEX ROWID | DOC_T发票项目 | 1 | 15 | 0 (0)| 00:00:01 |
| 28 | NESTED LOOPS OUTER | | 1 | 2313 | 1 (0)| 00:00:01 |
| 29 | VIEW | | 1 | 2306 | 1 (0)| 00:00:01 |
| 30 | NESTED LOOPS OUTER | | 1 | 2386 | 1 (0)| 00:00:01 |
| 31 | NESTED LOOPS OUTER | | 1 | 2373 | 1 (0)| 00:00:01 |
| 32 | NESTED LOOPS | | 1 | 2347 | 1 (0)| 00:00:01 |
| 33 | NESTED LOOPS | | 1 | 2340 | 0 (0)| 00:00:01 |
| 34 | NESTED LOOPS | | 1 | 142 | 0 (0)| 00:00:01 |
| 35 | NESTED LOOPS | | 1 | 116 | 0 (0)| 00:00:01 |
| 36 | NESTED LOOPS | | 1 | 90 | 0 (0)| 00:00:01 |
|* 37 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用明细 | 1 | 82 | 0 (0)| 00:00:01 |
|* 38 | INDEX RANGE SCAN | IDX_120675_处方序 | 1 | | 0 (0)| 00:00:01 |
| 39 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目价格 | 1 | 8 | 0 (0)| 00:00:01 |
|* 40 | INDEX UNIQUE SCAN | PK_T收费项目价格表| 1 | | 0 (0)| 00:00:01 |
| 41 | TABLE ACCESS BY INDEX ROWID | INQ_D住院费用列表 | 1 | 26 | 0 (0)| 00:00:01 |
|* 42 | INDEX UNIQUE SCAN | PK_INQ_D住院费用列| 1 | | 0 (0)| 00:00:01 |
| 43 | TABLE ACCESS BY INDEX ROWID | INQ_D住院档案 | 1 | 26 | 0 (0)| 00:00:01 |
|* 44 | INDEX UNIQUE SCAN | PK_INQ_D住院档案 | 1 | | 0 (0)| 00:00:01 |
|* 45 | VIEW | | 1 | 2198 | 0 (0)| 00:00:01 |
| 46 | UNION-ALL PARTITION | | | | | |
|* 47 | FILTER | | | | | |
| 48 | NESTED LOOPS | | 1 | 281 | 1 (0)| 00:00:01 |
| 49 | NESTED LOOPS | | 1 | 281 | 1 (0)| 00:00:01 |
| 50 | NESTED LOOPS | | 1 | 131 | 0 (0)| 00:00:01 |
| 51 | NESTED LOOPS | | 1 | 104 | 0 (0)| 00:00:01 |
|* 52 | TABLE ACCESS BY INDEX ROWID| DUG_D西药房住院处 | 1 | 26 | 0 (0)| 00:00:01 |
|* 53 | INDEX UNIQUE SCAN | PK_DUG_D西药房住院| 1 | | 0 (0)| 00:00:01 |
| 54 | TABLE ACCESS BY INDEX ROWID| DUG_D西药房住院处 | 1 | 78 | 0 (0)| 00:00:01 |
|* 55 | INDEX RANGE SCAN | IK_D西药住院处方明| 1 | | 0 (0)| 00:00:01 |
| 56 | TABLE ACCESS BY INDEX ROWID | DOC_T药品目录_价格| 1 | 27 | 0 (0)| 00:00:01 |
|* 57 | INDEX UNIQUE SCAN | PK_T药品目录_价格 | 1 | | 0 (0)| 00:00:01 |
|* 58 | INDEX UNIQUE SCAN | PK_T药品目录 | 1 | | 0 (0)| 00:00:01 |
| 59 | TABLE ACCESS BY INDEX ROWID | DOC_T药品目录 | 1 | 150 | 1 (0)| 00:00:01 |
|* 60 | FILTER | | | | | |
| 61 | NESTED LOOPS | | 1 | 161 | 1 (0)| 00:00:01 |
| 62 | NESTED LOOPS | | 1 | 161 | 1 (0)| 00:00:01 |
| 63 | NESTED LOOPS | | 1 | 121 | 0 (0)| 00:00:01 |
| 64 | NESTED LOOPS | | 1 | 104 | 0 (0)| 00:00:01 |
|* 65 | TABLE ACCESS BY INDEX ROWID| DUG_D中药房住院处 | 1 | 39 | 0 (0)| 00:00:01 |
|* 66 | INDEX UNIQUE SCAN | PK_D中药房住院处方| 1 | | 0 (0)| 00:00:01 |
| 67 | TABLE ACCESS BY INDEX ROWID| DUG_D中药房住院处 | 1 | 65 | 0 (0)| 00:00:01 |
|* 68 | INDEX RANGE SCAN | IDX_120313_单据序 | 1 | | 0 (0)| 00:00:01 |
| 69 | TABLE ACCESS BY INDEX ROWID | DOC_T中药目录_价格| 1 | 17 | 0 (0)| 00:00:01 |
|* 70 | INDEX UNIQUE SCAN | PK_T中药目录_价格 | 1 | | 0 (0)| 00:00:01 |
|* 71 | INDEX UNIQUE SCAN | PK_T中药目录 | 1 | | 0 (0)| 00:00:01 |
| 72 | TABLE ACCESS BY INDEX ROWID | DOC_T中药目录 | 1 | 40 | 1 (0)| 00:00:01 |
| 73 | TABLE ACCESS BY INDEX ROWID | DOC_T收费项目 | 1 | 7 | 1 (0)| 00:00:01 |
|* 74 | INDEX UNIQUE SCAN | PK_T收费项目 | 1 | | 0 (0)| 00:00:01 |
| 75 | TABLE ACCESS BY INDEX ROWID | DOC_L发票对应费用 | 1 | 26 | 0 (0)| 00:00:01 |
|* 76 | INDEX RANGE SCAN | IDX_119988_类别序 | 1 | | 0 (0)| 00:00:01 |
| 77 | TABLE ACCESS BY INDEX ROWID | DOC_T发票项目 | 1 | 13 | 0 (0)| 00:00:01 |
|* 78 | INDEX UNIQUE SCAN | PK_T发票项目 | 1 | | 0 (0)| 00:00:01 |
|* 79 | INDEX UNIQUE SCAN | UK_费别价格关联表 | 1 | 7 | 0 (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

8 - access("FP"."类别序号I"(+)="L"."系统序号")
13 - filter("A"."开单医师R" IS NOT NULL AND "A"."开单科室I" IS NOT NULL AND "A"."住院序号I"=355 AND "A"."处方序号I"=0)
14 - filter("A"."单据序号I" IS NOT NULL)
16 - access("C"."系统序号"="A"."收费项目序号I")
17 - filter("B"."打包否B"(+)=1)
18 - access("B"."系统序号"(+)="A"."打包序号I")
20 - access("XM"."系统序号"="C"."项目序号I")
21 - access("L"."系统序号"(+)="XM"."费用类别I")
26 - access("P1"."系统序号"="P2"."发票序号I")
27 - filter("P1"."适用对象N"<>1)
37 - filter("A"."开单科室I" IS NOT NULL AND "A"."开单医师R" IS NOT NULL AND "A"."住院序号I"=355)
38 - access("A"."处方序号I">0)
40 - access("E"."系统序号"="A"."收费项目序号I")
42 - access("A"."单据序号I"="C"."系统序号")
44 - access("C"."住院序号I"="DA"."系统序号")
45 - filter("A"."处方类型"=SYS_OP_C2C("B"."处方类型"))
47 - filter(0<"A"."处方序号I")
52 - filter("A"."记账否B"=1)
53 - access("A"."系统序号"="A"."处方序号I")
filter("A"."系统序号">0)
55 - access("B"."单据序号I"="A"."处方序号I")
filter("B"."单据序号I">0 AND "A"."系统序号"="B"."单据序号I")
57 - access("C"."系统序号"="B"."药品序号I")
58 - access("D"."系统序号"="C"."药品目录序号I")
60 - filter(0<"A"."处方序号I")
65 - filter("A"."记账否B"=1)
66 - access("A"."系统序号"="A"."处方序号I")
filter("A"."系统序号">0)
68 - access("B"."单据序号I"="A"."处方序号I")
filter("B"."单据序号I">0 AND "A"."系统序号"="B"."单据序号I")
70 - access("C"."系统序号"="B"."药品序号I")
71 - access("D"."系统序号"="C"."药品目录序号I")
74 - access("XM"."系统序号"="E"."项目序号I")
76 - access("XM"."费用类别I"="LB"."类别序号I"(+))
78 - access("FP"."系统序号"(+)="LB"."发票序号I")
79 - access("FB"."价格序号I"(+)="A"."收费项目序号I" AND "DA"."病员费别I"="FB"."病人费别I"(+))
 

猜你喜欢

转载自blog.csdn.net/ljl_name/article/details/88298810