版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 实验报告学院(xuyun)(系)名称:计算机与通信(tng xn)工程学院姓名Touchkiss学号20125577专业计算机科学与技术班级2班实验项目查询优化课程名称数据库系统课程代码0668026实验时间2014/12/5实验地点7#215批改意见成绩教师签字:实验环境(软、硬件环境)实验目的了解数据库查询优化方法和查询计划的概念学会分析查询的代价,并通过建立索引或者修改SQL语句来降低查询代价实验内容与要求基于教材中的student、course、SC表,通过存储过程(要求在报告中写出存储过程),插入多条元组(1万条以上),考虑不同的SQL操作,分析比较执行代价。单表查询直接查询:查询
2、student表中年龄在20岁以上的学生记录建立索引后,再查询:查询student表中年龄在20岁以上的学生记录表中元组数量少,查询结果所占比例大:查询student表中年龄在20岁以上的学生记录表元组数量多,查询结果所占比例小:查询student表中年龄在20岁以上的学生记录分析以上四种SQL查询的执行效率,并做总结:多表查询:基于student、course、SC表,按照以下要求,实现多表查询,并分析比较执行效率。(自行设计查询语句,要求针对同一查询内容,使用以下四种方式)多表连接查询嵌套查询建立索引使用游标分析比较:3综合练习(1) 对于student表,不按照姓名创建索引,查询某个姓名
3、,所需要的时间。(2) 对于student表,按照姓名创建索引,查询某个姓名,所需要的时间。(3) 对于student表,不按照系别创建索引,查询某个系所有学生,所需要的时间。(4) 对于student表,按照系别创建各种索引,查询某个系所有学生,所需要的时间。(5) 查询sc表所需时间。(6) 将student和sc连接所需时间。(7) 将student和sc和course连接所需时间。(8)查询选修了“数据库”学生的学号姓名,分别用嵌套和连接的方法,观察两种方法所用的时间。本次实验总结: 基于教材中的student、course、SC表,通过(tnggu)存储过程(要求(yoqi)在报告中
4、写出存储过程),插入多条元组(1万条以上(yshng)),考虑不同的SQL操作,分析比较执行代价。存储过程:create procedure insert_stusexflag nvarchar=男, age int=0, dept char(8)=MA,i int=1aswhile i600000beginset age = 20if i%4 = 0 set age=17if i%4 = 1set age=18if i%4 = 2set age = 19if i%2 = 0set sexflag = 男elseset sexflag = 女set dept = MAif i%3 = 0set
5、 dept = CSif i%3 = 1 set dept = ISinsert into dbo.Student values(i, Name+cast(i as char), sexflag, age, dept)set i=i+1end create procedure insert_coui int = 1aswhile i1000begininsert into dbo.Course (Cno,Cname,Ccredit) values(i, Course+ cast(i as char), i%5)set i=i+1endUSE labGOSET ANSI_NULLS ONGOSE
6、T QUOTED_IDENTIFIER ONGOALTER procedure dbo.insert_s_ci int =1, j int =1aswhile i6000 beginset j=1while j= 20go set statistics io off set statistics time off (2)建立索引后,再查询:查询student表中年龄在20岁以上(yshng)的学生记录(3)表中元组数量少,查询结果(ji gu)所占比例大:查询student表中年龄在19岁以下(yxi)的学生(xu sheng)记录STU表中共1000条数据(4)表元组数量多,查询结果所占比例
7、小:查询student表中年龄在20岁以上的学生记录Student表中有600000条数据分析以上四种SQL查询的执行效率,并做总结:2.多表查询:基于student、course、SC表,按照以下要求,实现多表查询,并分析比较执行效率。(自行设计查询语句,要求针对同一查询内容,使用以下四种方式)(1)多表连接查询set statistics io on set statistics time on go select Sname from dbo.Student,dbo.Course,dbo.SCwhere Student.Sno=SC.Sno and SC.Cno = Course.Cno
8、 and Cname=Course1 and Grade90go set statistics io off set statistics time off(2)嵌套查询(chxn)set statistics io on set statistics time on go select Sname from Student where Sno in (select Sno from SC where Grade 90 and Cno =(select Cno from Course where Cname = Courserse1) go set statistics io off set
9、statistics time off(3)建立(jinl)索引set statistics io on set statistics time on go create index Studentgra1 on SC(Grade)select Sname from dbo.Student,dbo.Course,dbo.SCwhere Student.Sno=SC.Sno and SC.Cno = Course.Cno and Cname=Courserse1 and Grade90go set statistics io off set statistics time off(4)使用(sh
10、yng)游标set statistics io on set statistics time on go declare my_cursor cursor scroll dynamicforselect Sname from dbo.Student,dbo.Course,dbo.SCwhere Student.Sno=SC.Sno and SC.Cno = Course.Cno and Cname=Course1 and Grade90open my_cursordeclare name sysnamefetch next from my_cursor into namewhile(fetch
11、_status=0)beginprint namefetch next from my_cursor into nameendclose my_cursordeallocate my_cursorgo set statistics io off set statistics time off分析(fnx)比较:3综合(zngh)练习(1) 对于(duy)student表,不按照姓名创建索引,查询某个姓名,所需要的时间。set statistics io on set statistics time on go select * from dbo.Student where Sname = Na
12、me1999go set statistics io off set statistics time off(2) 对于student表,按照姓名创建索引,查询某个姓名,所需要的时间。set statistics io on set statistics time on go create index Snameon Student(Sname)select * from dbo.Student where Sname=Name1999go set statistics io off set statistics time off(3) 对于(duy)student表,不按照系别创建索引,查询
13、某个系所有学生,所需要的时间。set statistics io on set statistics time on go select * from dbo.Student where Sdept=CSgo set statistics io off set statistics time off(4) 对于student表,按照系别创建各种索引,查询某个(mu )系所有学生,所需要的时间。set statistics io on set statistics time on go create index Sdepton dbo.Student (Sdept)select * from d
14、bo.Student where Sdept=CSgo set statistics io off set statistics time off(5) 查询(chxn)sc表所需时间。set statistics io on set statistics time on go select * from dbo.SCgo set statistics io off set statistics time off(6) 将student和sc连接(linji)所需时间。set statistics io on set statistics time on go select * from db
15、o.Student,dbo.SC where Student.Sno=SC.Snogo set statistics io off set statistics time off(7) 将student和sc和course连接(linji)所需时间。set statistics io on set statistics time on go select * from dbo.Student,dbo.SC,dbo.Coursewhere Student.Sno=SC.Sno and SC.Cno=Course.Cnogo set statistics io off set statistics time off(8)查询(chxn)选修了“数据库”学生的学号姓名,分别用嵌套和连接的方法(fngf),观察两种方法所用的时间。set statistics io on set statistics time on go select Sno,Sname from dbo.Student where Sno in(select sno from
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人入股合作协议书样本:金融科技股权投资合同4篇
- 2025个人商品房买卖合同补充协议范本制作指南
- 二零二五版高端别墅门窗定制合同样本4篇
- 强制退股协议书(2篇)
- 工程合同条款承包协议书
- 2024年中级经济师考试题库及参考答案(预热题)
- 设备装卸施工方案
- 二零二五版美容院美甲美睫技术培训合同3篇
- 通省隧道施工方案
- 二零二五年度棉被产品进出口贸易合作框架协议4篇
- 2025年工程合作协议书
- 2025年山东省东营市东营区融媒体中心招聘全媒体采编播专业技术人员10人历年高频重点提升(共500题)附带答案详解
- 2025年宜宾人才限公司招聘高频重点提升(共500题)附带答案详解
- KAT1-2023井下探放水技术规范
- 垃圾处理厂工程施工组织设计
- 天疱疮患者护理
- 驾驶证学法减分(学法免分)题库及答案200题完整版
- 2024年四川省泸州市中考英语试题含解析
- 2025届河南省九师联盟商开大联考高一数学第一学期期末学业质量监测模拟试题含解析
- 抚养权起诉状(31篇)
- 2024年“一岗双责”制度(五篇)
评论
0/150
提交评论