sql优化技术在油田开发数据库中的应用研究

sql优化技术在油田开发数据库中的应用研究

ID:24059979

大小:50.50 KB

页数:4页

时间:2018-11-12

sql优化技术在油田开发数据库中的应用研究_第1页
sql优化技术在油田开发数据库中的应用研究_第2页
sql优化技术在油田开发数据库中的应用研究_第3页
sql优化技术在油田开发数据库中的应用研究_第4页
资源描述:

《sql优化技术在油田开发数据库中的应用研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、SQL优化技术在油田开发数据库中的应用研究:通过河南油田开发数据库数据量统计工作的体会,针对SQL优化在Oracle数据库工作中的应用作以总结和研究。以便对以后的工作有很好的指导促进作用,提高生产、科研工作效率。  关键词:PL/SQLDeveloper;Oracle;SQL;优化  :TP:A:1671-7597(2011)0310090-01    1SQL语句优化技术概述  1.1SQL在数据库中的工作步骤  SQL语句在数据库中的工作流程分为5个步骤:服务器收到SQL语句、SQL语句解析、数据库的优化器决定执行路径、变量赋值、执行。  1.2SQL优化的规则  SQL

2、语句优化的目标是使其简单有效,有以下规则:  消除不必要的大表全表搜索:不必要的全表搜索导致大量不必要的I/O,从而拖慢整个数据库的性能。在一个有序的表中,如果查询返回少于40%的行,或者在一个无序的表中,返回少于7%的行,那么这个查询都可以调整为使用一个索引来代替全表搜索。  确保最优的索引使用:对于改善查询的速度,这是特别重要的。有时Oracle可以选择多个索引来进行查询,调优专家必须检查每个索引并且确保Oracle使用正确的索引。它还包括bitmap和基于函数的索引的使用。  这些规则看来简单,不过它们占SQL调优任务的90%[2]。  2油田开发数据库应用实例  在统

3、计静态数据表如表DAA05单井小层数据表时,要求统计出该表的井口数量、列出井号、解释序号两个数据项,在新表中显示井号和researcherList两列,以井号首字母拼音排序,并将同一口井的解释序号列的数据都归入researcherList列中。  这里主要用到SQL语句在Oracle查询中的查询、合并行、和并列和排序几个方面,按照常规的组合查询方式的代码如下图一,输出结果图图二:  在面对有十多万行的数据表时,就要求需要在SQL语句的编写上加以优化简练,当使用createindex、ORDERBY或者GROUPBY的语句时,Oracle数据库将会自动执行排序的操作。  当与O

4、racle建立起一个session时,在内存中就会为该session分配一个私有的排序区域。如果该连接是一个专用的连接(dedicatedconnection),  那么就会根据init.ora中sort_area_size参数的大小在内存中分配一个ProgramGlobalArea(PGA)。因此,在分配足够的排序区域以避免发生大的排序任务时出现磁盘排序(disksorts)的同时,对于那些并不需要进行很大排序的任务,就会出现一些浪费。  可以将以上语句组合简化至如三:  对比两次查询可以看出,在查询结果输出相同的情况下,未经优化的SQL执行时间为266.569秒,六分多钟

5、。而经过简洁优化后的SQL语句执行时间为66.394秒,仅之前时间的六分之一,也就是此次优化语句的效率提高了6倍。  利用优化语句分别对DAA03(井斜数据表,统计井口数量2331口)、DAA07(油层分组数据表,统计井口数量2731口)、DAA091(射孔井段数据表,统计井口数量2278口)等多个表进行查询统计,总体的工作效率提高了几十倍。  3总结  在多数情况下,数据库使用索引来更快地遍历表,优化器主要根据定义的索引来提高性能。但是,如果在SQL语句的where子句中写的SQL代码不合理,就会造成优化器删去索引而使用全表扫描,一般就这种SQL语句就是所谓的劣质SQL语句

6、。在编写SQL语句时我们应清楚优化器根据何种原则来删除索引,这有助于写出高性能的SQL语句。

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

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

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