大型数据库技术实践实验报告03Word下载.docx

上传人:b****5 文档编号:20049603 上传时间:2023-01-16 格式:DOCX 页数:14 大小:267.13KB
下载 相关 举报
大型数据库技术实践实验报告03Word下载.docx_第1页
第1页 / 共14页
大型数据库技术实践实验报告03Word下载.docx_第2页
第2页 / 共14页
大型数据库技术实践实验报告03Word下载.docx_第3页
第3页 / 共14页
大型数据库技术实践实验报告03Word下载.docx_第4页
第4页 / 共14页
大型数据库技术实践实验报告03Word下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

大型数据库技术实践实验报告03Word下载.docx

《大型数据库技术实践实验报告03Word下载.docx》由会员分享,可在线阅读,更多相关《大型数据库技术实践实验报告03Word下载.docx(14页珍藏版)》请在冰豆网上搜索。

大型数据库技术实践实验报告03Word下载.docx

姓  名

a

专业、班

d

实验地点

4#416

指导教师

c

实验时间

2014.6.25

一、实验目的及要求

a)通过实验,了解Oracle的Latch和等待机制

二、实验设备(环境)及要求

a)操作系统:

Windows2000或WindowsXP

b)数据库管理系统:

Oracle数据库

三、实验内容和要求

1通过实验展示系统变量绑定和无变量绑定的性能,并进行比较和分析

2显示之前运行过的哪些SQL因没绑定变量造成大量硬解析

3通过实验模拟表数据块热块冲突的场景,展示减小每块存储量对性能的影响,并进行比较和分析

4通过实验模拟索引数据块热块冲突的场景,展示反向索引对性能的影响,并进行比较和分析

5通过实验模拟段头数据块热块冲突的场景,展示自动段管理对性能的影响,并进行比较和分析

四、实验结果和分析

(1)通过实验展示系统变量绑定和无变量绑定的性能,并进行比较和分析

下面是一个在有绑定变量和不绑定变量情况下,latch资源争用的对比测试,测试时让一跳SQL语句执行10000次,然后给出各自的执行过程中产生的资源使用情况。

 

创建第一个存储过程p1,不使用变量绑定方式执行SQL10000次,创建第二个存储过程p2,使用变量绑定方式执行SQL10000次:

测试创建的性能采集包runStats_pkg分别在测试开始、存储过程p1运行结束、存储过程p2运行结束的3个时间点采集了性能数据,最后在报告中给出了2个存储过程个字的latch资源使用情况及对比情况。

从这个结果中可以清楚地看到不绑定变量的Latch征用时非常严重的,注意输出结果中几个librarycache的Latch在数值上的差异,可以看到,绑定变量时要比不绑定变量时这些Latch征用小得多。

(2)显示之前运行过的哪些SQL因没绑定变量造成大量硬解析

硬解析简言之即一条SQL语句没有被运行过,处于首次运行,则需要对其进行语法分析,语

义识别,跟据统计信息生成最佳的执行计划,然后对其执行。

而软解析呢,则是由于在librarycache已经存在与该SQL语句一致的SQL语句文本

、运行环境,即有相同的父游标与子游标,采用拿来主义,直接执行即可。

软解析同样经历语法分析,语义识别,且生成hashvalue,接下来

在librarycache搜索相同的hashvalue,如存在在实施软解析。

将v$sql视图中的数据用remove_constants处理后,更新到t1表中:

查出除了谓词条件不同的SQL语句和它们的执行次数,在这里是查询SQL没有被重用超过100次的SQL语句:

(3)通过实验模拟表数据块热块冲突的场景,展示减小每块存储量对性能的影响,并进行比较和分析

可以看到T表上每个数据块平均存放行数为70行左右:

T1表上将每个数据块上存放的记录数缩小为2条,这样T1表上有数据的数据块数量要远远多于T表

当我们分别从T,T1表中选出1000条数据时,可以看到两个表的执行计划是相同的,返回的结果集是相同的,但T1表的一致性读的数量是620,要比T表143大出很多,原因就是T1表中的行分布在更多的数据块上,导致Oracle需要读取得数据块来完成查询。

从另一个角度看,我们把数据分布到了更多的数据块上,大大降低了一个数据块被重复读取的概率。

但是这种方式的缺点是显而易见的,就是降低了数据读取的性能,在这种情况下,访问相同的数据意味着需要读取更多的数据块,性能会有所降低。

不过如果存在这样的情况,比如很多用户只修改1条记录并且各自更新的数据不同,那么这样做的好处就非常明显。

在T表中,一个数据块上大约有70条记录,就是说很可能70个用户会同时访问一个数据块,这必然导致热块的出现;

当我们让每个数据块只存放2条记录时,最多只会有2个用户会同时访问一个数据块,这样热块的概率将会被极大地降低。

(4)通过实验模拟索引数据块热块冲突的场景,展示反向索引对性能的影响,并进行比较和分析

对于一个在实际应用中非常常见的条件按范围的查询,在反向索引中,却只能够通过全表扫描或者全索引扫描的方式来实现,这就是反向索引的一个非常严重的缺陷,所以在生产环境下使用它时要十分慎重。

(5)通过实验模拟段头数据块热块冲突的场景,展示自动段管理对性能的影响,并进行比较和分析

在会话2中插入数据时间为

在会话1中插入数据时间为

经分析,自动段管理会使性能优化很多

五、分析与讨论

1本次实验我出现了无法连接到test用户上,原因是我没有打开数据库

2我了解到了:

绑定变量:

首先其实质是变量,有些类似于我们经常使用的替代变量,替代变量使用&

占位符,只不过绑定变量使用:

替代变量使用时为&

variable_para,相应的绑定变量则为:

bind_variable_para

通常一个SQL语句包含动态部分和静态部分,占位符实质是SQL语句中容易发生变化的部分,通常为其条件或取值范围。

动态部分在一般情

况下(数据倾斜除外),对执行计划的生成的影响是微乎其微的。

故同一SQL语句不同的动态部分产生的执行计划都是相同的。

六、教师评语

签名:

日期:

成绩

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

当前位置:首页 > 初中教育 > 语文

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

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