1、姓名a专业、班d实验地点4#416指导教师c实验时间2014.6.25一、 实验目的及要求a) 通过实验,了解Oracle的Latch和等待机制二、 实验设备(环境)及要求a) 操作系统: Windows2000或Windows XPb) 数据库管理系统:Oracle数据库三、 实验内容和要求1通过实验展示系统变量绑定和无变量绑定的性能,并进行比较和分析2显示之前运行过的哪些SQL因没绑定变量造成大量硬解析3通过实验模拟表数据块热块冲突的场景,展示减小每块存储量对性能的影响,并进行比较和分析4通过实验模拟索引数据块热块冲突的场景,展示反向索引对性能的影响,并进行比较和分析5通过实验模拟段头数据
2、块热块冲突的场景,展示自动段管理对性能的影响,并进行比较和分析四、 实验结果和分析(1)通过实验展示系统变量绑定和无变量绑定的性能,并进行比较和分析下面是一个在有绑定变量和不绑定变量情况下,latch资源争用的对比测试,测试时让一跳SQL语句执行10000次,然后给出各自的执行过程中产生的资源使用情况。创建第一个存储过程p1,不使用变量绑定方式执行SQL10000次,创建第二个存储过程p2,使用变量绑定方式执行SQL10000次:测试创建的性能采集包runStats_pkg分别在测试开始、存储过程p1运行结束、存储过程p2运行结束的3个时间点采集了性能数据,最后在报告中给出了2个存储过程个字的
3、latch资源使用情况及对比情况。从这个结果中可以清楚地看到不绑定变量的Latch征用时非常严重的,注意输出结果中几个library cache 的 Latch 在数值上的差异,可以看到,绑定变量时要比不绑定变量时这些Latch征用小得多。(2)显示之前运行过的哪些SQL因没绑定变量造成大量硬解析硬解析简言之即一条SQL语句没有被运行过,处于首次运行,则需要对其进行语法分析,语义识别,跟据统计信息生成最佳的执行计划,然后对其执行。而软解析呢,则是由于在library cache已经存在与该SQL语句一致的SQL语句文本、运行环境,即有相同的父游标与子游标,采用拿来主义,直接执行即可。软解析同样
4、经历语法分析,语义识别,且生成hash value ,接下来在library cache搜索相同的hash value ,如存在在实施软解析。将v$sql视图中的数据用remove_constants处理后,更新到t1表中:查出除了谓词条件不同的SQL语句和它们的执行次数,在这里是查询SQL没有被重用超过100次的SQL语句:(3)通过实验模拟表数据块热块冲突的场景,展示减小每块存储量对性能的影响,并进行比较和分析可以看到T表上每个数据块平均存放行数为70行左右:T1表上将每个数据块上存放的记录数缩小为2条,这样T1表上有数据的数据块数量要远远多于T表当我们分别从T,T1表中选出1000条数据
5、时,可以看到两个表的执行计划是相同的,返回的结果集是相同的,但T1表的一致性读的数量是620,要比T表143大出很多,原因就是T1表中的行分布在更多的数据块上,导致Oracle需要读取得数据块来完成查询。从另一个角度看,我们把数据分布到了更多的数据块上,大大降低了一个数据块被重复读取的概率。但是这种方式的缺点是显而易见的,就是降低了数据读取的性能,在这种情况下,访问相同的数据意味着需要读取更多的数据块,性能会有所降低。不过如果存在这样的情况,比如很多用户只修改1条记录并且各自更新的数据不同,那么这样做的好处就非常明显。在T表中,一个数据块上大约有70条记录,就是说很可能70个用户会同时访问一个
6、数据块,这必然导致热块的出现;当我们让每个数据块只存放2条记录时,最多只会有2个用户会同时访问一个数据块,这样热块的概率将会被极大地降低。(4)通过实验模拟索引数据块热块冲突的场景,展示反向索引对性能的影响,并进行比较和分析对于一个在实际应用中非常常见的条件按范围的查询,在反向索引中,却只能够通过全表扫描或者全索引扫描的方式来实现,这就是反向索引的一个非常严重的缺陷,所以在生产环境下使用它时要十分慎重。(5)通过实验模拟段头数据块热块冲突的场景,展示自动段管理对性能的影响,并进行比较和分析在会话2中插入数据时间为在会话1中插入数据时间为经分析,自动段管理会使性能优化很多五、分析与讨论1本次实验我出现了无法连接到test用户上,原因是我没有打开数据库2我了解到了:绑定变量:首先其实质是变量,有些类似于我们经常使用的替代变量,替代变量使用&占位符,只不过绑定变量使用:替代变量使用时为 &variable_para,相应的绑定变量则为 :bind_variable_para通常一个SQL语句包含动态部分和静态部分,占位符实质是SQL语句中容易发生变化的部分,通常为其条件或取值范围。动态部分在一般情况下(数据倾斜除外),对执行计划的生成的影响是微乎其微的。故同一SQL语句不同的动态部分产生的执行计划都是相同的。六、教师评语签名:日期:成绩
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1