田彬
摘要 数据库系统随着其数据量的增加,响应时间与吞吐率会受到影响,从而给整个信息化系统的性能与用户体验带来阻碍,所以,就需要对查询过程进行优化。本文以标准化服务平台系统的应用开发为依托,对不同业务需要情况下的三种Oracle查询优化策略进行详细立阐述,即:基于ORACLE平台的全文索引技术,可以有效提高数据库管理中的题录查询速度;基于ORACLE平台的快速刷新物化视图技术,可以有效提高整个数据库系统的年检查询速度;基于ORACLE平台中的Job定时任务,可以对标准状态进行有效的自动修改。
【关键词】Oracle查询优化 全文索引 物化视图 标准化
1 引言
文中所涉及到的标准化服务平台,是由标准化服务中心面向社会广大企业所提供的一种标准化信息研究、咨询以及跟踪的信息化综合服务平台,可以为各项业务与服务的标准化、网络化以及信息化提供支持,提升实际中的工作效率,增强职能部门对相关领域的监督机制,并达到对资源进行高效利用和为企业社会更好地服务的目的。这里,标准化服务中心主要负责为全社会提供标准化的信息服务、标准化的技术法规服务、物品编码印制服务以及经济分析与管理中所需要的各类组织机构代码与服务等。
根据不同的应用与业务需求,对标准化服务平台中的Oracle数据库查询操作进行优化的技术主要有三种,分别是:
(1)利用Oracle中的全文索引来对题录信息查询速度的提升;
(2)利用Oracle中的物化视图快速刷新技术来实现年检查询速率的提升;
(3)利用Oracle中的Job定时任务来实现标准状态的自动调整与修改。本文将对这三种技术的应用进行详细说明。
2 基于Oracle全文索引的数据库查询
2.1 业务说明
在标准化服务平台中,其基础性数据主要为题录数据,比如标准体系中常见的国标、行标、企标以及国外题录等,而与这些题录数据相关的属性则主要包括:标准号、组织、状态、性质、发布日期、实施日期、中英文名称等;对于数据库中的相关对象,其属性则主要有ICS分类码、国际分类码、替代标准、采用标准等。就目前而言,存储于题录数据库中的数据量已经达到千万量级,且还在不断的增加,从而使得题录的数据量逐渐增加。而在应用中,则需要依据属性的特性数据进行查询,在标准化平台中输入查询条件后,需要确保整个系统的响应时间控制在1秒以内。
2.2 0racle全文索引
考虑到题录的数据量处于不断增加的状态,且已经积累的数据量比较庞大,如果还采用诸如Instr与Like的常见文本定位方法,则会对所有的数据表进行扫描,从而导致运算与服务资源的大量消耗,给整个系统的搜索功能带来限制。所以,针对数据量庞大的题录数据,就需要对其不同的属性字段进行效率更高的关键字匹配,而这样处理,也容易造成比较严重的效率与性能障碍。
Oracle中所提供的全文索引技术,可以实现段落性标准号的逐词分解,将对不同单个户主的出现频率、位置等进行准确标记,进而根据单个词语自己的编码顺序来实现索引文件的存储。这样,依托标准号来实现查询时,就不需要对所有的标准题录进行遍历与检索,只需要根据所建立的索引文件来进行有序查找,从而实现对标准号关键词的有序查询;对于数据量庞大的标准题录数据库来说,其查询的复杂度可以控制在Log2(N)的水平,有效规避对整个题录数据表的全部遍历操作。
不过,优化索引的建立过程需要消耗较多的时间,使用中不应该在完成每条题录数据的修改后就进行索引的优化,而是应该充分利用Oracle中的Job定时任务,以天为单位对索引优化进行定期调用与执行,从而确保数据查询的准确与高效。结果表明,通过采用全文索引的构建操作,可以提高约10倍以上的查询速率。同时,还可以满足题录查询实际应用中的其他需求。
3 基于0racIe快速刷新的物化视图技术
3.1 业务需求
對于任何生产企业来说,其所生产的产品,均应该符合国家与行业的相关技术标准。所以,就有必要设计与开发标准年检子系统,以便实现对年检企业的查询服务,主要包括作废标准企业标底、作废标准替代、年检报告打印等。同时,还要对进行年检企业的数量、标准量、企业的标准量以及其他标准数的准确与高效统计。
3.2 物化视图
对于标准化服务平台中所存储的庞大题录数据,涉及到的企业量也达到了数万家,而每家企业所年检的标准条数也不同。而在检索中,每个年检企业的标准查询均需要通过与题录库的访问,还确认相关标准的有效性,同时还需要对企业的作废标准情况进行计算。
在此过程中,考虑到数据量较大,仅仅采用普通的视图构建方式,速率比较慢。不过,通过采用物化视图的方式,可以对表连接或聚焦等需要消耗较多时间的操作进行预先计算与保存,这样,在查询过程中,就可以避免此类比较耗时的操作,加快查询速率。同时,利用物化视图的刷新,还可以提供数据查询的正确性与有效性。
4 基于Oracle的Job定时任务
4.1 业务需求
对于不同的标准,其发布时间、实施时间以及作废时间可能均存在差异。而标准从发布到实施,其状态也处于不断的变化中;可见,标准状态的不断更改与变化,则是整个标准化数据库在实际运行与维护中的关键,会对题录数据库的完整性与准确性产生影响。
4.2 0racle中的Job定时操作
标准化数据库的维护中,如果利用人工方式来实现所有题录数据的维护,则不可避免地会存在遗漏或错误的情况。所以,考虑采用Oracle中的任务队列管理器(即Job Queue)来完成。通过任务队列管理器,可以由管理员来指定自动执行的时间与次数;在此过程中,由于所有的执行均在数据库中来完成,则会提高相关执行的效率。任务队列管理器可以对作业执行的时间进行定制,还可以提供更加灵活的处理方式;此外,还可以通过具体的配置,将执行过程安排在系统访问量较少的时段,从而能够有效提高整个系统的工作效率与负荷均衡。
对于一些耗时和重复性的操作,比如:数据库数据备份、批量更新、海量数据处理等,均可以利用任务队列管理器来减少相关的工作量。
4.3 自动修改标准状态实现
完成了Job任务的创建后,就可以对标准状态下的存储过程CHANGE STD STATUS进行调用或修改。具体的实现过程为:
存储过程chage_std_status可以描述如下,对于标准状态为A或N的情况下,其处理为:
IF v DICT STANDARD STATUS= 'A'
OR V DICT STANDARD STATUS= tN' THEN
IF v DIC,T STANDARD STATUS= ‘N
AND V DATE IMPLEMENTATION
THEN
BEGIN
UPDATE STD SET
DICT STANDARD STATUS= 'A'
WHERE STD.ID= v_STD_ID;
C,OMMIT;
V DICT STANDARD STATUS:
=‘A:
END;
END IF;
END IF;
IF V DATE OBSOLETE IS NOT NULL
AND v_DATE_OBSOLETE
THEN
BEGIN
UPDATE STD SET
DICT STANDARD STATUS= 'W'
WHERE STD.ID= v_STD_ID,
COMMIT;
END;
END IF;
对于存储过程CHANGE STD STATUS,完成和执行Job定时任务的实现过程如下:
DECLARE
X NUMBER;
BEGIN
SYS.DBMS JOB.SUBMIT
SYS.DBMS_OUTPUT.PUT_LINE(‘JobNumber is= to_char(x》;
COMMIT;
END;
可以看出,利用Oracle中的Job功能,就可以實施和完成定时调度任务,并能够基于实施和作废日期,来实现对标准状态的修改与调整,即NN—A或A—W。
5 结束语
文中主要针对Oracle数据库中的全文索引、物化视图以及Job定时任务等查询优化技术,对标准化服务平台中的查询过程进行优化。而后期的应用效果则表明,Oracle中所提供的各种查询优化技术,需要根据具体应用系统的需求特点来进行分析与选择,并对各种优化方式进行全面综合,以便能够达到预期的设计目标。
参考文献
[1]曾传军,基于索引技术的情报业务系统的应用研究[D].广州:广东工业大学,2 012.
[2]蔡焰.OraclelOgHWM原理及性能优化[J].微型机与应用,2013,32 (08):1-3.
[3]邹一丹,异构数据源集成系统中查询重写的研究[D].哈尔滨商业大学,2017.
[4]王蒙湘,李芳芳,谷峪,于戈.交互式数据探索综述[J].计算机科学与探索,2017,11(02):171-184.