天津理工大学数据库实验四查询优化.docx
《天津理工大学数据库实验四查询优化.docx》由会员分享,可在线阅读,更多相关《天津理工大学数据库实验四查询优化.docx(14页珍藏版)》请在冰豆网上搜索。
![天津理工大学数据库实验四查询优化.docx](https://file1.bdocx.com/fileroot1/2023-2/4/0ece9401-1de1-4270-bf7d-ef91daae56ee/0ece9401-1de1-4270-bf7d-ef91daae56ee1.gif)
天津理工大学数据库实验四查询优化
实验报告
学院(系)名称:
计算机与通信工程学院
姓名
学号
专业
计算机科学与技术
班级
2班
实验项目
查询优化
课程名称
数据库系统
课程代码
实验时间
2014/12/5
实验地点
7#215
批改意见
成绩
教师签字:
实验环境(软、硬件环境)
一、实验目的
1.了解数据库查询优化方法和查询计划的概念
2.学会分析查询的代价,并通过建立索引或者修改语句来降低查询代价
二、实验内容与要求
基于教材中的、、表,通过存储过程(要求在报告中写出存储过程),插入多条元组(1万条以上),考虑不同的操作,分析比较执行代价。
1.单表查询
(1)直接查询:
查询表中年龄在20岁以上的学生记录
(2)建立索引后,再查询:
查询表中年龄在20岁以上的学生记录
(3)表中元组数量少,查询结果所占比例大:
查询表中年龄在20岁以上的学生记录
(4)表元组数量多,查询结果所占比例小:
查询表中年龄在20岁以上的学生记录
分析以上四种查询的执行效率,并做总结:
2.多表查询:
基于、、表,按照以下要求,实现多表查询,并分析比较执行效率。
(自行设计查询语句,要求针对同一查询内容,使用以下四种方式)
(1)多表连接查询
(2)嵌套查询
(3)建立索引
(4)使用游标
分析比较:
3.综合练习
(1)对于表,不按照姓名创建索引,查询某个姓名,所需要的时间。
(2)对于表,按照姓名创建索引,查询某个姓名,所需要的时间。
(3)对于表,不按照系别创建索引,查询某个系所有学生,所需要的时间。
(4)对于表,按照系别创建各种索引,查询某个系所有学生,所需要的时间。
(5)查询表所需时间。
(6)将和连接所需时间。
(7)将和和连接所需时间。
(8)查询选修了“数据库”学生的学号姓名,分别用嵌套和连接的方法,观察两种方法所用的时间。
三、本次实验总结:
基于教材中的、、表,通过存储过程(要求在报告中写出存储过程),插入多条元组(1万条以上),考虑不同的操作,分析比较执行代价。
存储过程:
'男',0,(8)=''1
<600000
=20
4=0
17
4=1
18
4=2
=19
2=0
='男'
='女'
=''
3=0
=''
3=1
=''
(,''(),,,)
1
=1
<1000
()(,''+(),5)
1
[]
[].[]
=1,=1
<6000
1
<1000
(,(*)%100)
1
1
1.单表查询
(1)直接查询:
查询表中年龄在20岁以上的学生记录
*>=20
(2)建立索引后,再查询:
查询表中年龄在20岁以上的学生记录
(3)表中元组数量少,查询结果所占比例大:
查询表中年龄在19岁以下的学生记录
表中共1000条数据
(4)表元组数量多,查询结果所占比例小:
查询表中年龄在20岁以上的学生记录
表中有600000条数据
分析以上四种查询的执行效率,并做总结:
2.多表查询:
基于、、表,按照以下要求,实现多表查询,并分析比较执行效率。
(自行设计查询语句,要求针对同一查询内容,使用以下四种方式)
(1)多表连接查询
='1'>90
(2)嵌套查询
(>90=(='1'))
(3)建立索引
1()
='1'>90
(4)使用游标
='1'>90
(0)
分析比较:
3.综合练习
(1)对于表,不按照姓名创建索引,查询某个姓名,所需要的时间。
*='1999'
(2)对于表,按照姓名创建索引,查询某个姓名,所需要的时间。
()
*'1999'
(3)对于表,不按照系别创建索引,查询某个系所有学生,所需要的时间。
*''
(4)对于表,按照系别创建各种索引,查询某个系所有学生,所需要的时间。
()
*''
(5)查询表所需时间。
*
(6)将和连接所需时间。
*
(7)将和和连接所需时间。
*
(8)查询选修了“数据库”学生的学号姓名,分别用嵌套和连接的方法,观察两种方法所用的时间。
(
(='999'))
本次实验总结: