- 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语句
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2013)32-7183-03
随着计算机技术的日趋成熟,应用程序产生的数据快速增长,数据库显得尤为重要。数据库系统管理数据的有效工具,数据库操作中查询操作又是最多的,通过数据库查询可以方便地获得所需的数据。然而,很多数据查询操作效率很低,在大数据集查询时表现得更为明显,查询所花时间长,响应慢,甚至导致查询结果不精确,主要原因一方面是由于硬件处理能力不够所导致,另一方面是由于查询方法不好,影响查询效率。查询方法的好处可能影响数十倍的查询效率。虽然有些数据库内置优化方法,但远远还不够,用户提交的查询语句也是影响查询效率的关键。
1 关系数据库的查询处理
1.1 查询处理步骤
关系型数据库管理系统(RDBMS)查询处理包括四个阶段,如图1所示,分别是查询分析,查询检查,查询优化和查询执行。
1)查询分析
查询分析是第一步,主要进行查询语句扫描,词法分析和语法分析。识别语言符号、属性名、SQL关键词等,再进行语法检查和分析判断是否满足SQL语法规则要求。
2)查询检查
查询检查就是对SQL语句进行语义检查,根据数据字典检查数据库对象,包括关系名、属性名等。还要进行用户存取权限检查,如果违反完整性约束或没有权限,查询操作不执行。检查通过后把查询语句转变成关系代数表达式,用语法分析树来表示。
3)查询优化
各个查询语句都有很多操作算法和执行策略可供选择,查询优化就是如何从中选择高效的查询方法。查询优化方法有很多种,比如物理优化和代数优化。物理优化是指根据规则选择底层操作和存取路径;代数优化是指按照规则改变操作的组合和次序,使得查询效率更好。
实际 RDBMS 查询优化器使用这些优化技术的组合,以获得最佳的查询优化的结果。实际应用中很多查询优化采用多种优化技术,实现更好的查询效果。
4)查询执行
查询执行根据优化策略生成查询计划,再由代码生成器生成所要查询计划代码。
2 SQL查询优化方法
在关系数据库系统中,查询优化的作用很明显,随着查询优化技术的进步,关系型数据库系统和SQL查询发展快速。查询优化对关系型数据库系统性能影响巨大,用户只需要说明做什么,而不必考虑怎么做,都交给查询优化来做。
2.1 基于索引的优化
索引是一种物理的数据库结构,根据表中的列建立列值与记录行的对应关系,索引包含键值和指向数据页面和行的指针。每个表包含两部分,分别存放表的数据页面和索引页面,索引页面上存放索引。数据检索时先检索索引页面,找到对应指针,再根据获得的指针读取数据。索引用来加快检索速度,但索引占用系统资源,要适当建立,不能每一列都建索引。对索引进行插入删除操作也需要更多的时间。
1) 索引作用
索引用来加快检索速度,查找数据时不必搜索整个数据库。主要内容包括:① 通过创建唯一性索引,保证每一行数据唯一。② 提高检索速度,这是索引的关键特性。③ 实现参考完整性,使得表间快速链接。④采用排序子句和分组检索数据时,缩短查询时排序和分组时间。 ⑤ 借助索引在查询过程中采用优化器隐藏,提高性能。
2)索引类型
如果一个表不建索引,数据行存储不按任何特定顺序,通常称为堆集。数据库中根据数据存储结果将索引分为簇索引和非簇索引。
簇索引根据数据行的键值排序,再将有用的数据记录存储。簇索引查找速度快是因为簇索引对表中数据排了序,但需要更大的空间来容纳所有重新排序的数据,另外,每个表只有一个簇索引。
非聚集索引结构独立于数据行,并且不对数据行键值排序。具有完全独立的数据线结构,不使用非聚集索引对表进行排序的数据行键。非簇索引借助B-树叶节点存储了行定位器和组成非簇索引的键值,数据存储方式决定行定位器的存储内容和结构,行定位器中存储指向数据行的指针。
非簇索引存储通过索引页,所需的空间更大,检索速度慢,但需要建立多个索引时,只能采用非簇索引,因为每个表簇索引只能建一个,非簇索引可以建248个。如何选择簇索引和非簇索引如表1所示。
2.2 SQL 语句优化
索引有助于提高检索速度,数据库操作是根据SQL语句执行的,数据库性能很大程度上由SQL语句执行效率决定。因此,有效的SQL语句是
您可能关注的文档
最近下载
- 最新人教版九年级上册数学期中试题(含答案).docx VIP
- 西门子智能照明办公大楼应用.pdf VIP
- 2024北师大版小学数学六年级上册第四单元百分数集体备课教学设计.docx VIP
- 智能照明系统(西门子InstabusKNXEIB系统)专项施工方案.doc VIP
- 乡村物流配送体系完善.pptx
- 智能照明控制方案1843.pdf VIP
- GB15618-2018 土壤环境质量 农用地土壤污染风险管控标准.docx VIP
- 高中地理新老教材比较研究——以人教版教材必修一为例.pdf VIP
- GB 50487-2008 水利水电工程地质勘察规范 (2022年版) .docx VIP
- 街道居民议事会组织与运行规范.pdf VIP
原创力文档


文档评论(0)