当前位置:
文档之家› 天津理工大学数据库实验数据库设计与查询优化
天津理工大学数据库实验数据库设计与查询优化
4.实验过程记录(源程序、测试用例、测试结果及心得体会等)
1.对于student1表,不按照姓名创建索引,查询某个姓名,名,所需要的时间。
3.对于student1表,不按照系别创建索引,查询某个系所有学生,所需要的时间。
4.对于student1表,按照系别创建各种索引,查询某个系所有学生,所需要的时间。
实验报告
学院(系)名称:计算机与通信工程学院
姓名
xx
学号
xx
专业
信息安全
班级
2班
实验名称
数据库设计与查询优化
课程名称
数据库系统
课程代码
0668026
实验时间
实验地点
7—219
批改意见
成绩
教师签字:
1、实验目的
1)熟悉索引的创建;
2)体会索引前和索引后执行效率的变化;
3)熟悉对于实现相同功能,不同编程方法(比如连接和嵌套等)的效率。
2.实验环境
MS SQL server
3.实验要求
(1)对于student1表,不按照姓名创建索引,查询某个姓名,所需要的时间。
(2)对于student1表,按照姓名创建索引,查询某个姓名,所需要的时间。
(3)对于student1表,不按照系别创建索引,查询某个系所有学生,所需要的时间。
(4)对于student1表,按照系别创建各种索引,查询某个系所有学生,所需要的时间。
5.查询sc1表所需时间。
6.将student1和sc1连接所需时间。
系统蓝屏
7.将将student1和sc1和course1连接所需时间。系统蓝屏
8.查询选修了“数据库”学生的学号姓名,分别用嵌套和连接的方法,观察两种方法所用的时间。
嵌套查询
连接查询
分析原因:连接查询的时间比嵌套查询的时间长:
原因:在相同条件下SQL的速度跟生成结果集关系较大,结果集越多速度越慢,一般连接会比嵌套产生更少的结果集(每级嵌套会生成一个结果集)
selectsno,gradefromSC1sc1x
whereGrade>=(selectAVG(Grade)fromSC1sc1y
whereCno=(selectCnofromCourse1
whereCname='数据库系统'))
(*查询时间过长终止查询。)
(6)实验2运行任何一条命令都会超过30分钟导致都会死机。无法写出报告。
whereSname='数据库系统'))andSdept='计算机'
(3)求至少选修了学号为S1所选修的全部课程的学生学号。
selectdistinctsnofromSC1sc1x
wherenotexists(select*fromSC1sc1y
wheresc1y.Sno='1997000194'andnotexists(select*fromsc1sc1z
(5)查询sc1表所需时间。
(6)将student1和sc1连接所需时间。
(7)将将student1和sc1和course1连接所需时间。
(8)查询选修了“数据库”学生的学号姓名,分别用嵌套和连接的方法,观察两种方法所用的时间。
(9)将实验1中和实验2中各个操作在student1,course1,sc1上运行,观察各个操作所需时间。
wheresc1z.sno=o=o))
(*查询时间过长终止查询。)
(4)求各系的系的学生人数的,并将结果按学生人数的降序排序。
selectSdept,COUNT(sno)fromStudent1
groupbySdept
orderbySdeptASC
(5)查询选修了数据库课程并且成绩高于该门课程平均分的学生学号和成绩。
9.将实验1中和实验2中各个操作在student1,course1,sc1上运行,观察各个操作所需时间。
(1)查询平均成绩60分以上的学生的学号。
(2)求计算机系没有选修数据库课程的学生姓名。
selectsnamefromStudent1
whereSnonotin(selectSnofromSC1
whereCnoin(selectCnofromCourse1