Oracle执行计划讲解51页文档资料Word格式文档下载.docx

上传人:b****1 文档编号:13454715 上传时间:2022-10-10 格式:DOCX 页数:22 大小:25.37KB
下载 相关 举报
Oracle执行计划讲解51页文档资料Word格式文档下载.docx_第1页
第1页 / 共22页
Oracle执行计划讲解51页文档资料Word格式文档下载.docx_第2页
第2页 / 共22页
Oracle执行计划讲解51页文档资料Word格式文档下载.docx_第3页
第3页 / 共22页
Oracle执行计划讲解51页文档资料Word格式文档下载.docx_第4页
第4页 / 共22页
Oracle执行计划讲解51页文档资料Word格式文档下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

Oracle执行计划讲解51页文档资料Word格式文档下载.docx

《Oracle执行计划讲解51页文档资料Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Oracle执行计划讲解51页文档资料Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。

Oracle执行计划讲解51页文档资料Word格式文档下载.docx

created 

update 

set 

id=99 

where 

rownum=1;

row 

updated 

commit;

Commit 

complete 

index 

t_ind 

on 

t(id);

Index 

oracle优化器:

RBO和CBO两种,从oracle10g开始优化器已经抛弃了RBO,下面的列子说明CBO大概是怎样的

/*+dynamic_sampling(t 

0) 

*/* 

id=1;

50819 

rows 

selected. 

Execution 

Plan 

hash 

value:

1376202287 

Id 

Operation 

Name 

Rows 

Bytes 

Cost 

(%CPU)| 

Time 

SELECT 

STATEMENT 

195 

15405 

51 

(0)| 

00:

01 

TABLE 

ACCESS 

BY 

INDEX 

ROWID| 

|* 

RANGE 

SCAN 

T_IND 

78 

50 

Predicate 

Information 

(identified 

by 

operation 

id):

access("

ID"

=1) 

现象t表还没有被分析,提示/*+dynamic_sampling(t0)*/*的目的是让CBO无法通过动态采样获取表中的实际数据情况,此时CBO只能根据T表中非常有限的信息(比如表中的extents数量,数据块的数量)来猜测表中的数据。

从结果中可以看到CBO猜出表中id=1的有195条,这个数值对于表的总数来说,是一个非常小的值,所以CBO选择了索引而不是全表扫描。

而实际情况如下所示:

id=1 

;

1601196873 

49454 

3815K| 

67 

(2)| 

FULL| 

filter("

通过动态取样,CBO估算出行数为49454,非常接近于真实50820数目。

选择了全表扫描。

我们来收集一下统计信息

exec 

dbms_stats.gather_table_stats(user,'

t'

cascade 

=>

true);

50815 

1339K| 

现在扫描过的行数为50815。

如果我们更新了所有的id为99看看。

id=99;

50820 

27 

=99) 

因为没有对表进行分析,所以表中的分析数据还是之前的信息,CBO并不知道。

我们可以看出Rows值为1,也就是说CBO人为表T中的ID=99的值只有1条,所有选择仍然是索引。

我们收集一把统计信息。

PL/SQL 

procedure 

successfully 

completed 

上面为补充内容,下面正式开始

1、sql的执行计划

创建测试表

t1(id 

int,name 

varchar2(1000));

t2(id 

ind_t1 

t1(id);

ind_t2 

t2(id);

ind_t2_name 

t2(name);

insert 

into 

t1 

a.OBJECT_ID,a.OBJECT_NAME 

all_objects 

a;

50206 

inserted 

t2 

rownum<

=20;

20 

t1'

t2'

2、产生执行计划

t1,t2 

t1.id= 

t2.id;

828990364 

780 

43 

T1 

28 

NESTED 

LOOPS 

FULL 

T2 

220 

IND_T1 

id)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1