基于Oracle数据库海量数据的查询优化研究
2016-01-01沈啸
沈 啸
(苏州健雄职业技术学院,江苏 苏州 215411)
基于Oracle数据库海量数据的查询优化研究
沈 啸
(苏州健雄职业技术学院,江苏 苏州 215411)
摘 要:信息时代的到来为行业领域注入新鲜的活力。以Oracle数据库为例,其可满足现行人们数据提取、处理与存储等要求,为生产生活的开展提供极大便利。然而在该数据库应用下,因数据量过大,也带来一系列如系统资源被过多占用、响应时间过长等,极大地影响了Oracle数据库优势的发挥,尤其在数据查询方面更受到严重的制约。对此,文章将对Oracle数据库系统相关概述、数据查询的常用技术以及分页查询技术在查询优化中的应用进行探析。
关键词:Oracle数据库;查询优化;分页查询
作为信息技术发展的重要产物,Oracle数据库近年来发展中在性能上不断提高,整体设计如物理设计、逻辑设计等都取得较多突破性的成就,得到更多行业领域的青睐。也因如此,使Oracle数据库在频繁使用下出现海量数据,为查询工作带来极大的难题,这就要求做好查询优化工作,使Oracle数据库综合性能得以提升。因此,本文对Oracle数据库数据查询优化相关研究,具有十分重要的意义。
1 Oracle数据库系统相关概述
关于Oracle数据库,其实质为围绕分布式数据库所设计的软件,可与B/S体系结构、CLIENT/SERVER等硬件平台相吻合。实际应用中,在具备数据库系统基本功能的基础上,也将分布式处理功能引入其中。而且在系统运行中,能够保证在资源使用率上较高,对于多种数据库可进行整合,并采取分层处理数据库资料的措施,为使用者带来极大便利。加上Oracle数据库在安全性上较为明显,使其应用更为广泛。然而需注意的是数据库应用下常面临数据量过大问题,其很可能导致查询时响应时间过长,这样便需做好数据的查询技术优化工作。以往Oracle数据库应用下,尽管也强调将相关的数据查询优化措施引入,但所取得的效果并不明显,究其原因在于优化过程中未能保证数据库满足规范化要求,且整个数据库系统未能及时升级,由此导致Oracle数据库性能受到影响[1]。
2 Oracle数据库数据查询常用技术分析
针对Oracle数据库数据查询的问题,现行常用的优化技术集中表现在SQL语句优化、分区技术以及索引技术等方面。以其中索引技术为例,应用过程中需以表列为依据进行索引设置,当索引创建后,在完成基修改或删除等操作的基础上,索引会指导数据完成排序过程,这样对于该列查询将更为容易。实际进行索引创建中,对于修改、删除或增加的表列一般不建立索引,而在查询操作较为频繁的表列中创建索引。具体构建索引时也有其他相关注意事项,如索引构建中将面临维护问题,且在索引创建后,若需对某一条记录返回,要求对多个文件进行扫描。同时,在错误索引存在情况下,很容易使多表连接操作耗费较多时间。这些事项都成为索引技术应用下需注意的问题[2]。
而对于分区技术的应用,其主要指在大型表中涵盖海量数据的情况下,所采取的数据处理技术,强调做好数据物理分离工作,但分离后的数据在逻辑结构上仍可作为整体。该技术应用下,无需由技术人员实时分析与确定数据存储位置,仅需对该表看作为一个整体,便能达到数据查询的目标。从分区的方法看,集中表现在以字段值范围为依据进行分区;以字段HASH函数值为依据完成分区;在按照字段值范围分区的基础上,结合HASH划分,完成分区过程;列表分区方式。综合近年来较多行业领域中分区技术应用的优势看,如车辆过车记录表查询等,可使查询速度提升许多。具体的优势表现为:①查询性能改善。用户可根据自身需求对关注的分区进行搜索,整个检索速度较快;②均衡I/O。在磁盘上可直接完成不同分区映射过程,这样在I/O平衡下,有利于分区的修复;③维护较为容易。假定分区后存在一个区故障问题,仅需保证应用的修复数据合理,便可对该区域进行修复;④可用性得到增强。分区技术应用下,由于有较多不同区域存在,这样故障问题出现的可能性也较高,但即使某分区异常,其他分区中表的数据将不会受到影响。需注意的是分区技术应用下,一般会涉及维护分区问题,其对于分区索引很容易带来影响,若该影响较为明显,应注意维护后进行索引的重建[3]。
3 分页查询技术在Oracle数据库数据查询优化中的应用研究
3.1 数据查询优化中的SQL语句优化
Oracle数据库应用下,SQL语句可执行性问题是编写工作面临的主要难题,尽管可选择多种方式进行编写,却难以保证所选择的方式最为适宜。因此数据查询优化中,要求做好SQL语句优化工作,确保SQL语句执行效率低的问题得以解决。实际优化语句过程中,通常需从查询等价交换方面着手,以查询语义为依据,保证语句以高执行效率形式呈现出来。且注意优化时应按照一定的原则开展,包括:①索引的合理运用;②联合查询次序的合理选择;③NOT IN或IN等语句的合理使用;④对于视图较为复杂情况,可采取的形式为联合查询;⑤禁止将PL/SQL功能调用应用于SQL中;⑥对GROUP BY进行优化,过滤掉其中不必要的记录[4]。
3.2 分页查询技术的应用
现行Oracle数据库应用下,解决其海量数据查询问题的关键性措施在于分页查询,其对于查询速度的提高可起到明显作用。一般查询过程中需从SQL语句对部分数据进行过滤,选取其中n条数据进行查看,完成这些数据查询的基础上对“下一页”按钮进行点击,使其他数据得以查询,有效解决海量数据一次性查询的难题[5]。
分页查询技术应用中,其在融入SQL语句优化技术的基础上,也涵盖其他如动态SQL、批绑定与游标变量等技术。如在动态SQL方面,强调为使不同条件、不同数据查询目标得以实现,将动态SQL技术引入,利用字符串对用户查询请求进行描述,当数据库服务器收到字符串后会直接对字符串语法进行分析,而非对语句执行权限、语句中的数据库对象判断,整个权限检查与对象判断都在语句执行就阶段中开展。这种方式运用下可使查询显示中,不会被特定条件、特定对象等所干扰。再如游标变量,其是保证将查询数据向客户端传递的关键所在,要求利用一个缓存区对当前页数据存储。这样当前页数据在使用中将更为容易,不会因数据量或数据结构等所限制。以Oracle 10g为例,可在游标引用类型明确的基础上,由用户对游标变量进行定义,这样能够使游标变量的使用更为容易,便于数据查询。另外,在分页查询技术应用下,也要求将批绑定技术引入其中,该技术强调对PL/SQL引擎、SQL引擎交换次数进行控制,通过BULK COLLECT语句运用,将多条记录信息一次返回,且在集合类型变量中进行存储。在以往学者研究中,可发现数据量增加情况下,就将批绑定技术引入,对查询效率的提高可起到明显效果。另外,为使分页查询技术应用目标得以实现,要求在接口设计上较为合理,可在PL/SQL程序运用下,完成编写存储工作[6]。
需注意的是,分页查询技术本身包含不同的类型,如以往ADO记录集应用下,强调在客户端内存中进行数据的存储,使ADO分页功能运用下达到分页目标,但这种方式仅对少量数据适用。因此,本文在研究中考虑对数据库服务器充分利用,直接将数据存储其中,在此基础上对数据细化为不同部分,向客户端传递,这样对于海量数据查询也可适用[7]。
4 结语
Oracle数据库的应用为企业与个人生产生活活动提供重要技术保障。但实际应用该数据系统中,也面临海量数据查询问题,要求在查询优化中正确认识Oracle数据库系统的基本内涵,在此基础上将相关的查询优化技术引入其中,包括分区技术以及索引技术等。同时,也可考虑应用分页查询技术,其集较多技术如批绑定、动态SQL语句以及游标变量等于一体,为海量数据查询提供技术支撑。
[参考文献]
[1]张辉,赵郁亮,徐江,等.基于Oracle数据库海量数据的查询优化研究[J].计算机技术与发展,2012(22):165-167.
[2]张学义,王观玉,黄隽.基于Oralce数据库SQL查询优化研究[J].制造业自动化,2011(12):116-118.
[3]孙风栋,闫海珍. Oracle 10g数据库海量数据分页查询优化[J].计算机应用与软件,2011(28):137-139.
[4]曾平.基于oracle数据库海量数据的查询优化研究[J].信息系统工程,2014(8):20-21.
[5]高闻迪.突发性海量数据处理技术在物联网监控系统中的研究与应用[D].北京:北京邮电大学,2013.
[6]马英俊.基于Oracle数据库与ARCSDE结合的空间数据库性能优化[D].北京:北京邮电大学,2011.
[7]陈含.基于Hadoop的海量数据存储和计算平台的设计与实现[D].武汉:武汉理工大学,2014.
Query Optimization of Massive Data Based on Oracle Database
Shen Xiao
(Jianxiong Institute of Vocational Technology Suzhou,Suzhou 215411,China)
Abstract:The advent of the information age industries injected fresh vitality. The Oracle database as an example,which can meet the current people data extraction,processing,storage,and other requirements for production and life to provide great convenience. However in the database application,because of large amount of data,it also brings a series such as resource system was too much occupied,response time is too long,greatly affected the giving full play to the advantage of Oracle databases,especially in data query more subject to serious constraints. This article will on the relevant overview of Oracle database system,data query technique is commonly used and paging query technology in query optimization The application of the analysis.
Key words:oracle database;query optimization;paging query
基金项目:项目名称:科技项目经费报销与管理系统设计;项目编号:2013QNJJ29。
作者简介:沈啸(1985-),男,江苏盐城,本科,助教。