2024-06-11
Oracle 三表关联统计信息异常
两表关联时,统计信息正常
select count(1)
2 from lcpol b
3 inner join lcgrpcont g
4 on g.grpcontno = b.grpcontno
5 and g.grpcontno = '2017081000014618';
Execution Plan
----------------------------------------------------------
Plan hash value: 3988393551
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 35 | 2770 (1)| 00:00:34 |
| 1 | SORT AGGREGATE | | 1 | 35 | | |
| 2 | NESTED LOOPS | | 535K| 17M| 2770 (1)| 00:00:34 |
|* 3 | INDEX UNIQUE SCAN| PK_LCGRPCONT | 1 | 17 | 1 (0)| 00:00:01 |
|* 4 | INDEX RANGE SCAN | IDX_LCPOL_GRPCONTNO | 535K| 9419K| 2769 (1)| 00:00:34 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("G"."GRPCONTNO"='2017081000014618')
4 - access("B"."GRPCONTNO"='2017081000014618')
增加了一个a表的关联,统计信息就错了
select count(1)
2 from lcpol b
3 inner join lcgrpcont g
4 on g.grpcontno = b.grpcontno
5 and g.grpcontno = '2017081000014618'
6 inner join lcinsured a
7 on a.insuredno = b.insuredno
8 and a.contno = b.contno
9 and b.grpcontno = '2017081000014618';
Execution Plan
----------------------------------------------------------
Plan hash value: 2873904152
------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 91 | 91 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 91 | | |
| 2 | NESTED LOOPS | | 41 | 3731 | 91 (0)| 00:00:02 |
| 3 | NESTED LOOPS | | 41 | 2583 | 50 (0)| 00:00:01 |
|* 4 | INDEX UNIQUE SCAN | PK_LCGRPCONT | 1 | 17 | 1 (0)| 00:00:01 |
| 5 | TABLE ACCESS BY INDEX ROWID| LCPOL | 41 | 1886 | 49 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | IDX_LCPOL_GRPCONTNO | 70 | | 13 (0)| 00:00:01 |
|* 7 | INDEX UNIQUE SCAN | PK_LCINSURED | 1 | 28 | 1 (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - access("G"."GRPCONTNO"='2017081000014618')
6 - access("G"."GRPCONTNO"="B"."GRPCONTNO")
filter("B"."GRPCONTNO"='2017081000014618')
7 - access("A"."CONTNO"="B"."CONTNO" AND "A"."INSUREDNO"="B"."INSUREDNO")
是怎么回事?
我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

评论
