1 实验六数据查询分析实验
一、实验内容
1、索引对查询的影响
(1)对结果集只有一个元组的查询分三种情况进行执行(必如查询一个具体学生的信息):
不建立索引,(学号上)建立非聚集索引,(学号上)建立聚集索引。
用查询分析器的执行步骤和结果对执行进行分析比较。
(2)对结果集中有多个元组的查询(例如查看某门成绩的成绩表)分类似(1)的三种情况进行执行比较。
(3)对查询条件为一个连续的范围的查询(例如查看学号在某个范围内的学生的选课情况)分类似(1)的三种情况进行执行比较,注意系统处理的选
择。
(4)索引代价。在有索引和无索引的情况下插入数据(例如在选课情况表SC 上插入数据),比较插入的执行效率。
2 、对相同查询功能不同查询语句的执行比较分析
3 、查询优化
除了建立适当索引,对SQL 语句重写外,还有其他手段来进行查询调优,例如
调整缓冲区大小,事先建立视图等。设计实现下列查询,使之运行效率最高。
写出你的查询形式,以及调优过程;并说明最优情况下的运行时间。
(1)查找选修了每一门课的学生。
(2)查找至少选修了课程数据库原理和操作系统的学生的学号。
二、实验要求
(1)用SQL语句完成以上操作
(2)要求学生独立完成以上内容。
(3)实验完成后完成要求的实验报告内容。
三、实验环境
系统:windows 7
软件:mysql5.6
四、实验步骤及结果分析
4.1. 索引对查询的影响
4.1.1 对结果集只有一个元组的查询分三种情况进行执行(必如查询一个具体
学生的信息):
登录mysql后输入set profiling=1;
show profiles显示出来之前输入的命令的执行时间。
show profile for query n查询细节;
(1)不建立索引,在student表中查询学号为“31401”的学生: