一、SQL多版本导致的问题
s.USERNAME,s.last_call_et,a.SQL_ID,s.LOGON_TIME,a.SQL_TEXT,a.SQL_FULLTEXT,
w.EVENT,a.DISK_READS,a.BUFFER_GETS
from v$process p,v$session s,v$sqlarea a,v$session_wait w
where p.ADDR = s.PADDR and s.SQL_ID = a.sql_id and s.sid = w.SID
and s.STATUS = 'ACTIVE' and s.PROGRAM !='plsqldev.exe' and s.OSUSER !='oracle'
--and a.SQL_TEXT like 'select%'
order by s.last_call_et desc;
2、记录下的SQL_ID,并查看SQL版本
![](https://img2018.cnblogs.com/blog/1530782/201901/1530782-20190115143436895-1949129109.png)
3、产看自执行计划的详细执行过程
1)查询SQL所有执行计划
SELECT * FROM TABLE(SYS.DBMS_XPLAN.DISPLAY_CURSOR('an8watgthzfgj',null))
2)查询SQL的CHILD NUMBER为0的执行计划
SELECT * FROM TABLE(SYS.DBMS_XPLAN.DISPLAY_CURSOR('an8watgthzfgj',0))
3)查询SQL的CHILD NUMBER为1的执行计划
SELECT * FROM TABLE(SYS.DBMS_XPLAN.DISPLAY_CURSOR('an8watgthzfgj',1))
SQL_ID an8watgthzfgj, child number 0
-------------------------------------
Plan hash value: 3102792867
----------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
----------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 5 (100)| | | |
|* 1 | VIEW | | 1 | 5032 | 5 (20)| 00:00:01 | | |
|* 2 | COUNT STOPKEY | | | | | | | |
| 3 | VIEW | | 1 | 5019 | 5 (20)| 00:00:01 | | |
|* 4 | SORT ORDER BY STOPKEY | | 1 | 1090 | 5 (20)| 00:00:01 | | |
|* 5 | FILTER | | | | | | | |
| 6 | NESTED LOOPS | | 1 | 1090 | 4 (0)| 00:00:01 | | |
| 7 | NESTED LOOPS | | 1 | 1090 | 4 (0)| 00:00:01 | | |
| 8 | PARTITION RANGE ITERATOR | | 1 | 339 | 2 (0)| 00:00:01 | KEY | KEY |
|* 9 | TABLE ACCESS BY LOCAL INDEX ROWID| GWORDERS | 1 | 339 | 2 (0)| 00:00:01 | KEY | KEY |
|* 10 | INDEX RANGE SCAN | INDX_GWO_ORDERNUM | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
| 11 | PARTITION RANGE ITERATOR | | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 12 | INDEX RANGE SCAN | INDX_GWT_GWORDERS_ID | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 13 | TABLE ACCESS BY LOCAL INDEX ROWID | GWTRXS | 1 | 751 | 2 (0)| 00:00:01 | 1 | 1 |
----------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("N">:8)
2 - filter(ROWNUM<=:6+:7)
4 - filter(ROWNUM<=:6+:7)
5 - filter((TO_DATE(:5,'yyyy-mm-dd')+1>TO_DATE(:3,'yyyy-mm-dd') AND
TO_DATE(:4,'yyyy-mm-dd')+1>TO_DATE(:2,'yyyy-mm-dd')))
9 - filter(("O"."CREATEDATE">=TO_DATE(:3,'yyyy-mm-dd') AND "O"."CREATEDATE"<TO_DATE(:5,'yyyy-mm-dd')+1))
10 - access("O"."ORDERNUM"=:1)
12 - access("G"."GWORDERS_ID"="O"."ID")
13 - filter(("G"."CREATEDATE">=TO_DATE(:2,'yyyy-mm-dd') AND "G"."CREATEDATE"<TO_DATE(:4,'yyyy-mm-dd')+1))
SQL_ID an8watgthzfgj, child number 1
-------------------------------------
Plan hash value: 3102792867
----------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
----------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 5 (100)| | | |
|* 1 | VIEW | | 1 | 5032 | 5 (20)| 00:00:01 | | |
|* 2 | COUNT STOPKEY | | | | | | | |
| 3 | VIEW | | 1 | 5019 | 5 (20)| 00:00:01 | | |
|* 4 | SORT ORDER BY STOPKEY | | 1 | 1097 | 5 (20)| 00:00:01 | | |
|* 5 | FILTER | | | | | | | |
| 6 | NESTED LOOPS | | 1 | 1097 | 4 (0)| 00:00:01 | | |
| 7 | NESTED LOOPS | | 1 | 1097 | 4 (0)| 00:00:01 | | |
| 8 | PARTITION RANGE ITERATOR | | 1 | 338 | 2 (0)| 00:00:01 | KEY | KEY |
|* 9 | TABLE ACCESS BY LOCAL INDEX ROWID| GWORDERS | 1 | 338 | 2 (0)| 00:00:01 | KEY | KEY |
|* 10 | INDEX RANGE SCAN | INDX_GWO_ORDERNUM | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
| 11 | PARTITION RANGE ITERATOR | | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 12 | INDEX RANGE SCAN | INDX_GWT_GWORDERS_ID | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 13 | TABLE ACCESS BY LOCAL INDEX ROWID | GWTRXS | 1 | 759 | 2 (0)| 00:00:01 | 1 | 1 |
----------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("N">:8)
2 - filter(ROWNUM<=:6+:7)
4 - filter(ROWNUM<=:6+:7)
5 - filter((TO_DATE(:5,'yyyy-mm-dd')+1>TO_DATE(:3,'yyyy-mm-dd') AND
TO_DATE(:4,'yyyy-mm-dd')+1>TO_DATE(:2,'yyyy-mm-dd')))
9 - filter(("O"."CREATEDATE">=TO_DATE(:3,'yyyy-mm-dd') AND "O"."CREATEDATE"<TO_DATE(:5,'yyyy-mm-dd')+1))
10 - access("O"."ORDERNUM"=:1)
12 - access("G"."GWORDERS_ID"="O"."ID")
13 - filter(("G"."CREATEDATE">=TO_DATE(:2,'yyyy-mm-dd') AND "G"."CREATEDATE"<TO_DATE(:4,'yyyy-mm-dd')+1))
SQL_ID an8watgthzfgj, child number 2
-------------------------------------
Plan hash value: 3102792867
----------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
----------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 5 (100)| | | |
|* 1 | VIEW | | 1 | 5032 | 5 (20)| 00:00:01 | | |
|* 2 | COUNT STOPKEY | | | | | | | |
| 3 | VIEW | | 1 | 5019 | 5 (20)| 00:00:01 | | |
|* 4 | SORT ORDER BY STOPKEY | | 1 | 1070 | 5 (20)| 00:00:01 | | |
|* 5 | FILTER | | | | | | | |
| 6 | NESTED LOOPS | | 1 | 1070 | 4 (0)| 00:00:01 | | |
| 7 | NESTED LOOPS | | 1 | 1070 | 4 (0)| 00:00:01 | | |
| 8 | PARTITION RANGE ITERATOR | | 1 | 339 | 2 (0)| 00:00:01 | KEY | KEY |
|* 9 | TABLE ACCESS BY LOCAL INDEX ROWID| GWORDERS | 1 | 339 | 2 (0)| 00:00:01 | KEY | KEY |
|* 10 | INDEX RANGE SCAN | INDX_GWO_ORDERNUM | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
| 11 | PARTITION RANGE ITERATOR | | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 12 | INDEX RANGE SCAN | INDX_GWT_GWORDERS_ID | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 13 | TABLE ACCESS BY LOCAL INDEX ROWID | GWTRXS | 1 | 731 | 2 (0)| 00:00:01 | 1 | 1 |
----------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("N">:8)
2 - filter(ROWNUM<=:6+:7)
4 - filter(ROWNUM<=:6+:7)
5 - filter((TO_DATE(:5,'yyyy-mm-dd')+1>TO_DATE(:3,'yyyy-mm-dd') AND
TO_DATE(:4,'yyyy-mm-dd')+1>TO_DATE(:2,'yyyy-mm-dd')))
9 - filter(("O"."CREATEDATE">=TO_DATE(:3,'yyyy-mm-dd') AND "O"."CREATEDATE"<TO_DATE(:5,'yyyy-mm-dd')+1))
10 - access("O"."ORDERNUM"=:1)
12 - access("G"."GWORDERS_ID"="O"."ID")
13 - filter(("G"."CREATEDATE">=TO_DATE(:2,'yyyy-mm-dd') AND "G"."CREATEDATE"<TO_DATE(:4,'yyyy-mm-dd')+1))
SQL_ID an8watgthzfgj, child number 3
-------------------------------------
Plan hash value: 3102792867
----------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
----------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 530 (100)| | | |
|* 1 | VIEW | | 1 | 5032 | 530 (1)| 00:00:07 | | |
|* 2 | COUNT STOPKEY | | | | | | | |
| 3 | VIEW | | 1 | 5019 | 530 (1)| 00:00:07 | | |
|* 4 | SORT ORDER BY STOPKEY | | 1 | 915 | 530 (1)| 00:00:07 | | |
|* 5 | FILTER | | | | | | | |
| 6 | NESTED LOOPS | | 1 | 915 | 529 (0)| 00:00:07 | | |
| 7 | NESTED LOOPS | | 1 | 915 | 529 (0)| 00:00:07 | | |
| 8 | PARTITION RANGE ITERATOR | | 1 | 383 | 266 (0)| 00:00:04 | KEY | KEY |
|* 9 | TABLE ACCESS BY LOCAL INDEX ROWID| GWORDERS | 1 | 383 | 266 (0)| 00:00:04 | KEY | KEY |
|* 10 | INDEX RANGE SCAN | INDX_GWO_ORDERNUM | 1 | | 265 (0)| 00:00:04 | KEY | KEY |
| 11 | PARTITION RANGE ITERATOR | | 1 | | 262 (0)| 00:00:04 | KEY | KEY |
|* 12 | INDEX RANGE SCAN | INDX_GWT_GWORDERS_ID | 1 | | 262 (0)| 00:00:04 | KEY | KEY |
|* 13 | TABLE ACCESS BY LOCAL INDEX ROWID | GWTRXS | 1 | 532 | 263 (0)| 00:00:04 | 1 | 1 |
----------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("N">:8)
2 - filter(ROWNUM<=:6+:7)
4 - filter(ROWNUM<=:6+:7)
5 - filter((TO_DATE(:5,'yyyy-mm-dd')+1>TO_DATE(:3,'yyyy-mm-dd') AND
TO_DATE(:4,'yyyy-mm-dd')+1>TO_DATE(:2,'yyyy-mm-dd')))
9 - filter(("O"."CREATEDATE">=TO_DATE(:3,'yyyy-mm-dd') AND "O"."CREATEDATE"<TO_DATE(:5,'yyyy-mm-dd')+1))
10 - access("O"."ORDERNUM"=:1)
12 - access("G"."GWORDERS_ID"="O"."ID")
13 - filter(("G"."CREATEDATE">=TO_DATE(:2,'yyyy-mm-dd') AND "G"."CREATEDATE"<TO_DATE(:4,'yyyy-mm-dd')+1))
SQL_ID an8watgthzfgj, child number 4
-------------------------------------
Plan hash value: 3102792867
----------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
----------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 5 (100)| | | |
|* 1 | VIEW | | 1 | 5032 | 5 (20)| 00:00:01 | | |
|* 2 | COUNT STOPKEY | | | | | | | |
| 3 | VIEW | | 1 | 5019 | 5 (20)| 00:00:01 | | |
|* 4 | SORT ORDER BY STOPKEY | | 1 | 1017 | 5 (20)| 00:00:01 | | |
|* 5 | FILTER | | | | | | | |
| 6 | NESTED LOOPS | | 1 | 1017 | 4 (0)| 00:00:01 | | |
| 7 | NESTED LOOPS | | 1 | 1017 | 4 (0)| 00:00:01 | | |
| 8 | PARTITION RANGE ITERATOR | | 1 | 343 | 2 (0)| 00:00:01 | KEY | KEY |
|* 9 | TABLE ACCESS BY LOCAL INDEX ROWID| GWORDERS | 1 | 343 | 2 (0)| 00:00:01 | KEY | KEY |
|* 10 | INDEX RANGE SCAN | INDX_GWO_ORDERNUM | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
| 11 | PARTITION RANGE ITERATOR | | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 12 | INDEX RANGE SCAN | INDX_GWT_GWORDERS_ID | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 13 | TABLE ACCESS BY LOCAL INDEX ROWID | GWTRXS | 1 | 674 | 2 (0)| 00:00:01 | 1 | 1 |
----------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("N">:8)
2 - filter(ROWNUM<=:6+:7)
4 - filter(ROWNUM<=:6+:7)
5 - filter((TO_DATE(:5,'yyyy-mm-dd')+1>TO_DATE(:3,'yyyy-mm-dd') AND
TO_DATE(:4,'yyyy-mm-dd')+1>TO_DATE(:2,'yyyy-mm-dd')))
9 - filter(("O"."CREATEDATE">=TO_DATE(:3,'yyyy-mm-dd') AND "O"."CREATEDATE"<TO_DATE(:5,'yyyy-mm-dd')+1))
10 - access("O"."ORDERNUM"=:1)
12 - access("G"."GWORDERS_ID"="O"."ID")
13 - filter(("G"."CREATEDATE">=TO_DATE(:2,'yyyy-mm-dd') AND "G"."CREATEDATE"<TO_DATE(:4,'yyyy-mm-dd')+1))
SQL_ID an8watgthzfgj, child number 5
-------------------------------------
Plan hash value: 3102792867
----------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
----------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 5 (100)| | | |
|* 1 | VIEW | | 1 | 5032 | 5 (20)| 00:00:01 | | |
|* 2 | COUNT STOPKEY | | | | | | | |
| 3 | VIEW | | 1 | 5019 | 5 (20)| 00:00:01 | | |
|* 4 | SORT ORDER BY STOPKEY | | 1 | 1106 | 5 (20)| 00:00:01 | | |
|* 5 | FILTER | | | | | | | |
| 6 | NESTED LOOPS | | 1 | 1106 | 4 (0)| 00:00:01 | | |
| 7 | NESTED LOOPS | | 1 | 1106 | 4 (0)| 00:00:01 | | |
| 8 | PARTITION RANGE ITERATOR | | 1 | 355 | 2 (0)| 00:00:01 | KEY | KEY |
|* 9 | TABLE ACCESS BY LOCAL INDEX ROWID| GWORDERS | 1 | 355 | 2 (0)| 00:00:01 | KEY | KEY |
|* 10 | INDEX RANGE SCAN | INDX_GWO_ORDERNUM | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
| 11 | PARTITION RANGE ITERATOR | | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 12 | INDEX RANGE SCAN | INDX_GWT_GWORDERS_ID | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 13 | TABLE ACCESS BY LOCAL INDEX ROWID | GWTRXS | 1 | 751 | 2 (0)| 00:00:01 | 1 | 1 |
----------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("N">:8)
2 - filter(ROWNUM<=:6+:7)
4 - filter(ROWNUM<=:6+:7)
5 - filter((TO_DATE(:5,'yyyy-mm-dd')+1>TO_DATE(:3,'yyyy-mm-dd') AND
TO_DATE(:4,'yyyy-mm-dd')+1>TO_DATE(:2,'yyyy-mm-dd')))
9 - filter(("O"."CREATEDATE">=TO_DATE(:3,'yyyy-mm-dd') AND "O"."CREATEDATE"<TO_DATE(:5,'yyyy-mm-dd')+1))
10 - access("O"."ORDERNUM"=:1)
12 - access("G"."GWORDERS_ID"="O"."ID")
13 - filter(("G"."CREATEDATE">=TO_DATE(:2,'yyyy-mm-dd') AND "G"."CREATEDATE"<TO_DATE(:4,'yyyy-mm-dd')+1))
SQL_ID an8watgthzfgj, child number 6
-------------------------------------
Plan hash value: 778449213
--------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
--------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 7 (100)| | | |
|* 1 | VIEW | | 1 | 5032 | 7 (0)| 00:00:01 | | |
|* 2 | COUNT STOPKEY | | | | | | | |
| 3 | VIEW | | 1 | 5019 | 7 (0)| 00:00:01 | | |
|* 4 | FILTER | | | | | | | |
| 5 | NESTED LOOPS | | 1 | 916 | 7 (0)| 00:00:01 | | |
| 6 | NESTED LOOPS | | 1 | 916 | 7 (0)| 00:00:01 | | |
| 7 | PARTITION RANGE ITERATOR | | 1 | 533 | 4 (0)| 00:00:01 | KEY | KEY |
| 8 | TABLE ACCESS BY LOCAL INDEX ROWID| GWTRXS | 1 | 533 | 4 (0)| 00:00:01 | KEY | KEY |
|* 9 | INDEX RANGE SCAN DESCENDING | INDX_GWT_CREATEDATE | 1 | | 3 (0)| 00:00:01 | KEY | KEY |
| 10 | PARTITION RANGE ITERATOR | | 1 | | 2 (0)| 00:00:01 | KEY | KEY |
|* 11 | INDEX RANGE SCAN | INDX_GWO_CREATEDATE | 1 | | 2 (0)| 00:00:01 | KEY | KEY |
|* 12 | TABLE ACCESS BY LOCAL INDEX ROWID | GWORDERS | 1 | 383 | 3 (0)| 00:00:01 | 1 | 1 |
--------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("N">:8)
2 - filter(ROWNUM<=:6+:7)
4 - filter((TO_DATE(:5,'yyyy-mm-dd')+1>TO_DATE(:3,'yyyy-mm-dd') AND
TO_DATE(:4,'yyyy-mm-dd')+1>TO_DATE(:2,'yyyy-mm-dd')))
9 - access("G"."CREATEDATE"<TO_DATE(:4,'yyyy-mm-dd')+1 AND "G"."CREATEDATE">=TO_DATE(:2,'yyyy-mm-dd'))
11 - access("O"."CREATEDATE">=TO_DATE(:3,'yyyy-mm-dd') AND "O"."CREATEDATE"<TO_DATE(:5,'yyyy-mm-dd')+1)
12 - filter(("O"."ORDERNUM"=:1 AND "G"."GWORDERS_ID"="O"."ID"))
SQL_ID an8watgthzfgj, child number 7
-------------------------------------
Plan hash value: 3102792867
----------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
----------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 5 (100)| | | |
|* 1 | VIEW | | 1 | 5032 | 5 (20)| 00:00:01 | | |
|* 2 | COUNT STOPKEY | | | | | | | |
| 3 | VIEW | | 1 | 5019 | 5 (20)| 00:00:01 | | |
|* 4 | SORT ORDER BY STOPKEY | | 1 | 1011 | 5 (20)| 00:00:01 | | |
|* 5 | FILTER | | | | | | | |
| 6 | NESTED LOOPS | | 1 | 1011 | 4 (0)| 00:00:01 | | |
| 7 | NESTED LOOPS | | 1 | 1011 | 4 (0)| 00:00:01 | | |
| 8 | PARTITION RANGE ITERATOR | | 1 | 377 | 2 (0)| 00:00:01 | KEY | KEY |
|* 9 | TABLE ACCESS BY LOCAL INDEX ROWID| GWORDERS | 1 | 377 | 2 (0)| 00:00:01 | KEY | KEY |
|* 10 | INDEX RANGE SCAN | INDX_GWO_ORDERNUM | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
| 11 | PARTITION RANGE ITERATOR | | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 12 | INDEX RANGE SCAN | INDX_GWT_GWORDERS_ID | 1 | | 1 (0)| 00:00:01 | KEY | KEY |
|* 13 | TABLE ACCESS BY LOCAL INDEX ROWID | GWTRXS | 1 | 634 | 2 (0)| 00:00:01 | 1 | 1 |
----------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("N">:8)
2 - filter(ROWNUM<=:6+:7)
4 - filter(ROWNUM<=:6+:7)
5 - filter((TO_DATE(:5,'yyyy-mm-dd')+1>TO_DATE(:3,'yyyy-mm-dd') AND
TO_DATE(:4,'yyyy-mm-dd')+1>TO_DATE(:2,'yyyy-mm-dd')))
9 - filter(("O"."CREATEDATE">=TO_DATE(:3,'yyyy-mm-dd') AND "O"."CREATEDATE"<TO_DATE(:5,'yyyy-mm-dd')+1))
10 - access("O"."ORDERNUM"=:1)
12 - access("G"."GWORDERS_ID"="O"."ID")
13 - filter(("G"."CREATEDATE">=TO_DATE(:2,'yyyy-mm-dd') AND "G"."CREATEDATE"<TO_DATE(:4,'yyyy-mm-dd')+1))
4、分析执行计划
从执行计划中,可以看到,第七个执行计划错误,没有使用上索引"O"."ORDERNUM"=:1,导致检索范围变得非常庞大。
从SQL分析,ORDERNUM比较唯一,得到的O.ID也是唯一,SQL一般情况只能得到一行数据。
因此,此子执行计划可能不正确。