数据查询分析实验.doc





《数据查询分析实验.doc》由会员分享,可在线阅读,更多相关《数据查询分析实验.doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/*1. 实验六 数据查询分析实验1.1 实验目的1. 通过对不同情况下查询语句的执行分析,巩固和加深对查询和查询优化相关理论知识的理解,提高优化数据库系统的实践能力;2. 熟悉了解Mysql中查询分析器的使用,并进一步提高编写复杂查询的SQL 程序的能力。1.2 实验内容1.2.1 索引对查询的影响(1) 对结果集只有一个元组的查询分三种情况进行执行(必如查询一个具体学生的信息):不建立索引,(学号上)建立非聚集索引,(学号上)建立聚集索引。用查询分析器的执行步骤和结果对执行进行分析比较。(2) 对结果集中有多个元组的查询(例如查看某门成绩的成绩表)分类似(1)的三种情况进行执行比较。(3)
2、 对查询条件为一个连续的范围的查询(例如查看学号在某个范围内的学生的选课情况)分类似(1)的三种情况进行执行比较,注意系统处理的选择。(4) 索引代价。在有索引和无索引的情况下插入数据(例如在选课情况表SC 上插入数据),比较插入的执行效率。1.2.2 对相同查询功能不同查询语句的执行比较分析(1) select avg(grade) from sc group by cno having cno =100;select avg(grade) from sc where cno = 100;有和没有group by,比较其查询效率,并分析。(2) select sno,sname from s
3、tudent s1 where sno =(select max(sno) from student s2 where s1.dept = s2.dept );另一个:create table student1 as(select max(sno) as maxsno ,deptfrom student group by dept);select sno, sname from student,student1where student.sno = student1.maxsno and student1.dept=student.dept;drop table student1;重写后的查询
4、一定比原始查询更优吗?通过执行分析结果。(3) 对下面两个查询进行比较select sno,sname from student where dept != 电信 and sno all(select sno from student where dept = 电信 );另:select sname ,sno from student where dept != 电信 and sno ( select max(sno) from student where dept = 电信 );1.2.3 查询优化除了建立适当索引,对SQL 语句重写外,还有其他手段来进行查询调优,例如调整缓冲区大小,事先建
5、立视图等。设计实现下列查询,使之运行效率最高。写出你的查询形式,以及调优过程;并说明最优情况下的运行时间。(1)查找选修了每一门课的学生。(2)查找至少选修了课程数据库原理和操作系统的学生的学号。1.3 实验环境Window8操作系统Mysql 8.0版本数据库Mysql workbench 8.0可视化工具Mysql命令行编辑器1.4 实验步骤及结果分析索引对查询的影响1.4.1 单元组查询对结果集只有一个元组的查询分三种情况进行执行(必如查询一个具体学生的信息):不建立索引,(学号上)建立非聚集索引,(学号上)建立聚集索引。用查询分析器的执行步骤和结果对执行进行分析比较。1. 没有建立索引
6、的情况(查询sno=30203的学生)2. 建立非聚集索引的情况(查询sno=30203的学生)3. 建立聚集索引的情况(查询sno=30203的学生)4. 查询三种情况下的时间耗用但是发现,profiles没有记录信息,在网上查阅后进行了profiling权限开启查询,发现profiling未开启。 我们开启之后再进行时间查询:最终成功 5. 效率比较查询方法时间(ms)比较不建立索引0.3365较短非聚集索引0.4315最长聚集索引0.32125最短由表的数据可看出,在查询某个学生信息得过程中,聚集索引效率最高,无索引次之,非聚集索引最差。这样的结果产生的原因可能有:1. 电脑的不稳定性,
7、2. 数据库大小不合适,3. 非聚集索引查询过程较复杂1.4.2 多元组查询对结果集中有多个元组的查询(例如查看某门成绩的成绩表)分类似1.4.1的三种情况进行执行比较。1. 无索引查询(查询课程号为c01的情况)2. 非聚集索引查询(查询课程号为c01的情况)3. 聚集索引查询(查询课程号为c01的情况)4. 耗用时间展示5. 结果统计及比较查询方法时间(ms)比较不建立索引0.382较短非聚集索引0.397最长聚集索引0.35575最短1.4.3 范围查询对查询条件为一个连续的范围的查询(例如查看学号在某个范围内的学生的选课情况)分类似1.4.1的三种情况进行执行比较,注意系统处理的选择。
8、1. 无索引查询(查询学号在30201到30203之间的学生)2. 非聚集索引 (查询学号在30201到30203之间的学生)3. 聚集索引(查询学号在30201到30203之间的学生)4. 耗用时间展示5. 效率统计比较查询方法时间(ms)比较不建立索引0.4995最长非聚集索引0.46125较短聚集索引0.385最短由上述结果来看,在范围查询中,无索引查询效率最低;索引查询效率相对较高,这种比较在数据量大的时候更加明显,其中聚集索引较非聚集索引效率率更高。因为聚集索引将sno直接排序查找,速度较快;而非聚集索引查找块然后再进行细化数据查找,速度相对慢一些。1.4.4 索引代价索引代价。在有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 查询 分析 实验 试验

限制150内