- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SQL的多表联接查询优化研究
精品论文 参考文献
基于SQL的多表联接查询优化研究
张敏 (西安翻译学院计算机教研室)
摘要:数据库性能问题一直是决策者及技术人员共同关注的焦点,影响数据库性能的一个重要因素就是SQL查询语句的低效率,而在SQL查询语句中多表联接查询的使用频率非常之高,最能体现查询复杂性,往往是SQL优化的重点与难点。为了提高查询速度,提高数据库应用系统的执行效率,文章从分析关系数据库多表查询处理过程入手讨论查询优化技巧,指出多表查询优化的原则。通过几种优化策略的研究,在时间和空间上提高了系统的性能,在一定程度上提高了查询效率。
关键词:SQL 优化 联接
引言
多表联接操作往往要耗费大量的CPU时间和内存,所以多表联接查询在查询优化中起到了至关重要的作用,是数据库中最基本、最常用、最复杂的操作。在数据库的管理信息系统中,联接查询操作是所有数据库操作中所占据比重最大的操作。当数据库系统积累到一定程度,若查询时采用单条顺序扫描,那么扫描一遍所有的记录可能就得花上几十分钟,甚至几小时,这样的系统就失去了现实的使用价值。采取什么样的查询策略,使联接查询时间降低,就是本文需要研究的查询优化问题。
1 优化原理
联接查询操作的前提是笛卡儿积,即要将多表中所有的元组拿来运算,再从中找出符合条件的,其本身就增加了运算的负担,所以我们在做优化时尽量避免联接查询。如果必须要使用联接查询时也要尽量使用较少的联接表,查询优化力图找出给定等价的表达式,但执行效率更高,一个查询往往会有许多实现方法,关键是如何找出一个与之等价的且操作时间又少的表达式。优化的核心问题是尽可能减少查询中各表的参与加工的数据量,从而达到优化时间和空间的目的。
2 联接查询优化的原则
2.1 尽量使用单表操作
给定三个关系模式:(以下实例均以此为例)
s(sno,sname,sec,birthday,email)
c(cno,cname,creadit,tname)
sc(sno,cno,score)
例:查询1001学生选修的课程成绩。
分析:在此查询中涉及到sno和score两个字段,sno在s表中,score在sc表中,若要使用s和sc的联接,
SQL语句为:SELECT score FROM s,sc WHERE s.sno=sc.sno and sno=lsquo;1001rsquo;
则此查询就是多表联接查询,这样势必要做笛卡儿积操作,所以会增加检索的时间。
分析:在此查询中涉及到的sno和score两个字段可以在sc表中全部找到,按照尽量使用单表操作原则,可以只用一个sc表。
SQL语句改为:SELECT score FROM sc WHERE sno=lsquo;1001rsquo;这样避免了联接时的笛卡儿积操作,大大提高检索速度。
2.2 避免不了的联接操作要做到以下几个原则:
2.2.1 联接表时联少不联多 在做多表联接查询时,联接的表的个数尽量少,这样就可以减少查询中参与加工的数据量,从而达到优化时间和空间的目的。
例:查询选修了“数据库应用”课程的学生的学号和成绩。
分析:此查询中涉及到sno、cname和score三个字段,分别在s、c和sc中,若要使用s、c和sc的联接,
SQL语句为:SELECT sno,score FROM s,c,sc WHERE s.sno=sc.sno and c.cno=sc.cno and cname=lsquo;数据库应用rsquo;
则此查询是多表联接查询,并且联接的三表中,两两都要做笛卡儿积操作,所以会增加检索的时间。
分析:此查询中涉及到sno、cname和score三个字段,分别在c表和sc表中就可以全部找到,按照联接表时联少不联多的原则,可以只用c和sc表。
SQL语句改为:SELECT sno,score FROM c,sc WHERE c.cno=sc.cno and cname=lsquo;数据库应用rsquo;
2.2.2 联接表时在联少不联多的基础上要能实现联接 在做多表联接查询时,使联接的表的个数尽量少,但是不能一味的追求表的个数,如果表的使用不能达到我们要查询的数据,或者不能实现联接,那也是不成功的。
例3:查询选修了“数据库应用”课程的学生的姓名。
分析:此查询中涉及到sname和cname两个字段,分别在s表和c表中,若
您可能关注的文档
- 品读书香———读给教师的建议有感.doc
- 品读科学课为提高学生的科学素养奠基.doc
- 哈汉双语教育模式下的初中数学兴趣教育方法探析.doc
- 哈尔滨大气污染治理对策分析.doc
- 哈萨克族肺炎性假瘤18例CT诊断相关问题探讨.doc
- 哌嗪类改善脑循环药的药理分析 刘强丽.doc
- 哌甲酯注射液治疗呃逆的临床疗效及安全性分析.doc
- 哮喘合并肾上腺皮质功能减退症1例.doc
- 哌嗪类改善脑循环药的药理分析.doc
- 哮喘患儿潮气呼吸肺功能改变特征.doc
- 《GB/T 3048.4-2025电线电缆电性能试验方法 第4部分:导体直流电阻试验》.pdf
- 中国国家标准 GB/T 3048.4-2025电线电缆电性能试验方法 第4部分:导体直流电阻试验.pdf
- GB/T 3048.4-2025电线电缆电性能试验方法 第4部分:导体直流电阻试验.pdf
- 《JJF 2279-2025圆锥螺纹量规校准规范》.pdf
- JJG 2098-2025直流电能计量器具检定系统表.pdf
- 《GB/T 4706.128-2025家用和类似用途电器的安全 第128部分:新风净化机的特殊要求》.pdf
- 中国国家标准 GB/T 4706.128-2025家用和类似用途电器的安全 第128部分:新风净化机的特殊要求.pdf
- GB/T 30117.6-2025灯和灯系统的光生物安全 第6部分:紫外线灯产品.pdf
- 中国国家标准 GB/T 30117.6-2025灯和灯系统的光生物安全 第6部分:紫外线灯产品.pdf
- GB/T 31270.12-2025化学农药环境安全评价试验准则 第12部分:鱼类急性毒性试验.pdf
文档评论(0)