数据库查询优化策略研究

数据库查询优化策略研究

ID:5239260

大小:29.50 KB

页数:8页

时间:2017-12-06

数据库查询优化策略研究_第1页
数据库查询优化策略研究_第2页
数据库查询优化策略研究_第3页
数据库查询优化策略研究_第4页
数据库查询优化策略研究_第5页
资源描述:

《数据库查询优化策略研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数据库查询优化策略研究  摘要:随着计算机技术的不断发展,各种日常应用数据呈指数级增长,如何有效的管理数据是急需解决的问题。因此,数据库系统应运而生,查询操作又是最多的数据库操作,鉴于此,如何提高数据库查询效率至关重要。该文通过分析数据库查询步骤提出相应的优化策略,包括基于索引、SQL语句和其他优化方法。关键词:数据库;查询优化;索引;SQL语句中图分类号:TP391文献标识码:A文章编号:1009-3044(2013)32-7183-03随着计算机技术的日趋成熟,应用程序产生的数据快速增长,数据库显得尤为重要。数据库系统管理数据的有效工具,数

2、据库操作中查询操作又是最多的,通过数据库查询可以方便地获得所需的数据。然而,很多数据查询操作效率很低,在大数据集查询时表现得更为明显,查询所花时间长,响应慢,甚至导致查询结果不精确,主要原因一方面是由于硬件处理能力不够所导致,另一方面是由于查询方法不好,影响查询效率。查询方法的好处可能影响数十倍的查询效率。虽然有些数据库内置优化方法,但远远还不够,用户提交的查询语句也是影响查询效率的关键。1关系数据库的查询处理81.1查询处理步骤关系型数据库管理系统(RDBMS)查询处理包括四个阶段,如图1所示,分别是查询分析,查询检查,查询优化和查询执行。1

3、)查询分析查询分析是第一步,主要进行查询语句扫描,词法分析和语法分析。识别语言符号、属性名、SQL关键词等,再进行语法检查和分析判断是否满足SQL语法规则要求。2)查询检查查询检查就是对SQL语句进行语义检查,根据数据字典检查数据库对象,包括关系名、属性名等。还要进行用户存取权限检查,如果违反完整性约束或没有权限,查询操作不执行。检查通过后把查询语句转变成关系代数表达式,用语法分析树来表示。3)查询优化各个查询语句都有很多操作算法和执行策略可供选择,查询优化就是如何从中选择高效的查询方法。查询优化方法有很多种,比如物理优化和代数优化。物理优化是

4、指根据规则选择底层操作和存取路径;代数优化是指按照规则改变操作的组合和次序,使得查询效率更好。实际RDBMS8查询优化器使用这些优化技术的组合,以获得最佳的查询优化的结果。实际应用中很多查询优化采用多种优化技术,实现更好的查询效果。4)查询执行查询执行根据优化策略生成查询计划,再由代码生成器生成所要查询计划代码。2SQL查询优化方法在关系数据库系统中,查询优化的作用很明显,随着查询优化技术的进步,关系型数据库系统和SQL查询发展快速。查询优化对关系型数据库系统性能影响巨大,用户只需要说明做什么,而不必考虑怎么做,都交给查询优化来做。2.1基于索

5、引的优化索引是一种物理的数据库结构,根据表中的列建立列值与记录行的对应关系,索引包含键值和指向数据页面和行的指针。每个表包含两部分,分别存放表的数据页面和索引页面,索引页面上存放索引。数据检索时先检索索引页面,找到对应指针,再根据获得的指针读取数据。索引用来加快检索速度,但索引占用系统资源,要适当建立,不能每一列都建索引。对索引进行插入删除操作也需要更多的时间。1)索引作用索引用来加快检索速度,查找数据时不必搜索整个数据库。主要内容包括:①通过创建唯一性索引,保证每一行数据唯一。②提高检索速度,这是索引的关键特性。③8实现参考完整性,使得表间快

6、速链接。④采用排序子句和分组检索数据时,缩短查询时排序和分组时间。⑤借助索引在查询过程中采用优化器隐藏,提高性能。2)索引类型如果一个表不建索引,数据行存储不按任何特定顺序,通常称为堆集。数据库中根据数据存储结果将索引分为簇索引和非簇索引。簇索引根据数据行的键值排序,再将有用的数据记录存储。簇索引查找速度快是因为簇索引对表中数据排了序,但需要更大的空间来容纳所有重新排序的数据,另外,每个表只有一个簇索引。非聚集索引结构独立于数据行,并且不对数据行键值排序。具有完全独立的数据线结构,不使用非聚集索引对表进行排序的数据行键。非簇索引借助B-树叶节点

7、存储了行定位器和组成非簇索引的键值,数据存储方式决定行定位器的存储内容和结构,行定位器中存储指向数据行的指针。非簇索引存储通过索引页,所需的空间更大,检索速度慢,但需要建立多个索引时,只能采用非簇索引,因为每个表簇索引只能建一个,非簇索引可以建248个。如何选择簇索引和非簇索引如表1所示。2.2SQL语句优化索引有助于提高检索速度,数据库操作是根据SQL语句执行的,数据库性能很大程度上由SQL语8句执行效率决定。因此,有效的SQL语句是很重要的,针对SQL语句优化,主要包括where子句优化和避免相关子查询等。1)here子句优化where子句

8、优化在SQL语句优化中起重要作用,有一些主要的优化原则。1where子句中避免采用操作符!=或,不然会检索表中所有行。2where子句中谨慎使用in和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。