大型数据库的优化查询文.pdfVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结合索引优化 SQL语句提高数据库查询效率 任立群 (聊城市人民医院 信息科,山东 聊城 252000 ) 摘 要 在一个应用系统中,对数据查询及处理速度已成为衡量该系统成败的标准,所以在对大型数 据库查询时,应注意数据查询的工作效率,以免造成系统资源严重浪费。本文根据以语法为基础的查询优 化器的工作原理, 合理建立索引, 书写规范良好的 SQL 语句,使用合适的表达式或关键字, 充分利用索引, 避免全表扫描,提高查询效率。 关键词 数据库,优化查询,索引, SQL 语句 数据库系统是管理信息系统的核心,基于数据库的联机事务处理( OLTP )和联机分析处理 (OLAP) 是 各使用单位最为重要的计算机应用之一。从大多数系统的应用实例来看,查询、分析、统计是系统的最终 应用,而查询、分析、统计操作所基于的 SELECT 语句在 SQL 语句中又是付出资源代价最大的语句。举 个具体的例子,比如一个数据库表有上百万甚至上千万条记录,全表扫描一次往往需要数十分钟,甚至数 小时。如果采用比全表扫描更好的查询策略,往往可以使查询时间降为几分钟甚至几秒钟,由此可见查询 优化技术的重要性。本文以应用实例为基础,结合数据库操作(以 MS SQL Server 为例),介绍优化查询 技术在现实系统中的运用。 1 大 型 数 据 库 查询 的工 作 原理 一个好的查询计划往往可以使程序性能提高数十倍。 查询计划是用户所提交的 SQL 语句的集合, 查询 规划是经过优化处理之后所产生的语句集合。 DBMS (数据库管理系统)处理查询计划的过程是这样的: 在做完查询语句的词法、 语法检查之后, 将语句提交给 DBMS 的查询优化器, 优化器做完代数优化和存取 路径的优化之后,由预编译模块对语句进行处理并生成查询规划,然后提交给系统处理执行,最后将执行 结果返回给用户。在实际的数据库产品 (如 MS SQLServer) 的高版本中都是采用“基于语法的查询优化器” 和“基于开销的查询优化器”。“基于语法的查询优化器”为获得对 SQL 查询的应答结果创建一个过程 计划,但是它选择的特定计划取决于查询的确切语法及查询中的子句顺序。无论数据库中记录的数目或组 合是否随时间变化而更改, 基于语法的查询优化器每次都执行同样的计划。 与基于开销的查询优化器不同, 它不查看或维护数据库的统计记录。“基于开销的查询优化器”在备选计划中选择应答 SQL 查询的计划。 选择是基于对执行特殊计划的开销估算( I/O 操作数、 CPU秒数,等等)而作出的。它通过记录表或索引 中记录的数目和构成的统计数字估算这些开销。与基于语法的查询优化器不同,它不依赖于查询的确切语 法或查询中的子句顺序。 虽然现在的数据库产品在查询优化方面已经做得越来越好, 但由用户提交的 SQL 语句是系统优化的基础,很难设想一个原本糟糕的查询语句经过系统的优化之后会变得高效,因此用户所 写语句的优劣至关重要。“基于开销的查询优化器”的优化方法我们暂不讨论,下面重点说明“基于语法 的查询优化器”的解决方案。 2 合 理 建 立 索 引提 高 查 询 效 率 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。采用索引来加快数据处理速 度也成为广大数据库用户一致接受的优化方法。索引的使用要恰到好处,其使用原则如下: 2.1 在经常进行连接,但是没有指定为外键的列上建立索引。 2.2 在频繁进行排序或分组(即进行 group by 或 order by 操作)的列上建立索引。 第 1页/共4页

文档评论(0)

蔡氏壹贰 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档