数据库 优化查询 实验报告Word下载.docx
《数据库 优化查询 实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《数据库 优化查询 实验报告Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
1.了解数据库查询优化方法和查询计划的概念。
2.学会分析查询的代价。
【实验内容及步骤】
针对单表查询、连接查询、嵌套查询这三种SQL操作,查看查询分析器给出的查询计划,分析优化效果。
1.单表查询(针对GSM数据库)
针对表BTS,在BTS经度上建立非簇集索引(必须使用Createindex语句),进行下列查询:
(1)查询BTS经度位于121.089335和121.142595之间的BTS基本信息。
selectBTS.*
fromBTS
whereLONGITUDEbetween121.089335and121.142595
(2)对海拔查询一个范围内的所有记录(例如大于30,小于60)。
SQL语句为:
whereALTITUDEbetween30and60
(3)对BTS经度进行大范围查询(就是结果集包括几乎所有记录)。
whereLONGITUDEbetween121.089335and121.185335
分析三种情况下的查询计划有何不同?
(1)表中记录数多少的影响:
如果BTS表中只有一条记录,重复上面的三个查询。
执行SQL语句
DROPTABLEBTS;
CREATETABLEBTS(
BTSNAMECHARACTER(20)NOTNULL,
BSCIDINTEGERNOTNULL,
LONGITUDEDECIMAL(9,6),
LATITUDEDECIMAL(8,6),
ALTITUDEINTEGER,
BTSCOMPANYCHARACTER(10),
BTSPOWERDECIMAL(2,1),
PRIMARYKEY(BTSNAME),
FOREIGNKEY(BSCID)REFERENCESBSC(BSCID)ONDELETENOACTIONONUPDATENOACTIONENFORCEDENABLEQUERYOPTIMIZATION);
insertintoBTS
values('
JIANHANG1'
42217,121.137365,41.112287,45,'
Datang'
5);
createindexindex2onBTS(LONGITUDE);
(2)对海拔查询一个范围内的所有记录(例如大于30,小于60)
(3)对BTS经度进行大范围查询(就是结果集包括几乎所有记录)
(2)不同索引类型对查询的影响
a.在BTS经度上建立簇集索引(必须使用Alterindex语句),重复上面的三个查询。
如果没有不同,可能是建立簇集索引不立即导致表中记录重新排列的缘故,如何启动这种重组过程?
BTSNAMECHARACTER(20)NOTNULL,
BSCIDINTEGERNOTNULL,
LONGITUDEDECIMAL(9,6),
LATITUDEDECIMAL(8,6),
ALTITUDEINTEGER,
BTSCOMPANYCHARACTER(10),
BTSPOWERDECIMAL(2,1),
PRIMARYKEY(BTSNAME),
FOREIGNKEY(BSCID)REFERENCESBSC(BSCID)ONDELETENOACTIONONUPDATENOACTIONENFORCEDENABLEQUERYOPTIMIZATION);
importfrom"
C:
\bts.csv"
OFDELMETHODP(1,2,3,4,5,6,7)MESSAGES"
1"
INSERTINTOBTS(BTSNAME,BSCID,LONGITUDE,LATITUDE,ALTITUDE,BTSCOMPANY,BTSPOWER);
dropindexindex1;
createindexindex1onBTS(LONGITUDE)CLUSTER;
REORGTABLEBTSINDEXINDEX1INPLACEALLOWWRITEACCESSSTART;
b.撤销在BTS经度上建立的任何索引(必须使用Dropindex语句),重复上面的三个查询,比较在有非簇集索引、簇集索引和无索引的情况下,查询效率的不同。
SQL语句:
dropindexindex1
结论:
三种情况相比,无索引效率最低,有非簇集索引会加快查询效率,簇集索引效率最高。
(3)索引代价:
在有一般索引、簇集索引和无索引的情况下插入、删除、更新数据,通过执行计划比较每个操作的执行效率。
注意不要只对一条记录操作,应该插入、删除、更新一批(比如200条索引键值比较集中的记录)记录,这样才能测出真实的效率。
插入数据,SQL语句如下:
XUEYUANMEN4'
42215,121.149885,41.120547,40,'
Bell'
5),
('
XUEYUANMEN5'
XUEYUANMEN6'
XINSONGLU4'
42215,121.179905,41.112977,50,'
XINSONGLU5'
XINSONGLU6'
BINHELU5'
42215,121.120565,41.112757,90,'
BINHELU6'
BINHELU7'
42215,121.120565,41.112757,55,'
BINHELU8'
42215,121.120565,41.112757,50,'
KAIFAQU4'
42216,121.089335,41.120217,50,'
Huawei'
KAIFAQU5'
KAIFAQU6'
PINGGUOYUAN4'
42216,121.162695,41.137144,25,'
PINGGUOYUAN5'
PINGGUOYUAN6'
JIANHANG4'
JIANHANG5'
42217,121.137365,41.112287,25,'
JIANHANG6'
42217,121.137365,41.112287,30,'
YIZHUAN5'
42217,121.136449,41.129033,50,'
YIZHUAN6'
42217,121.136449,41.129033,35,'
YIZHUAN7'
YIZHUAN8'
42217,121.136449,41.129033,30,'
PAOTUAN4'
42217,121.177965,41.127767,30,'
PAOTUAN5'
PAOTUAN6'
DIANYEJU4'
42217,121.128727,41.103949,35,'
DIANYEJU5'
DIANYEJU6'
42217,121.128727,41.103949,40,'
ERZHIGAO4'
42217,121.157705,41.107277,40,'
ERZHIGAO5'
ERZHIGAO6'
ZHONGFANGGS4'
42217,121.126305,41.122877,40,'
ZHONGFANGGS5'
ZHONGFANGGS6'
BI