Oracle 11g数据库的OLTP表压缩评测

2013-07-24 18:35
中国医疗设备 2013年5期
关键词:联机批量评测

解放军总医院 计算机室,北京 100853

Oracle 11g数据库的OLTP表压缩评测

史洪飞,刘志敏

解放军总医院 计算机室,北京 100853

目的使用量化指标,对比压缩表和非压缩表的查询及更新操作性能进行评测,为大型联机事务处理的数据库应用做技术准备。方法进行实验设计,创建量化平台,分别在压缩与非压缩的数据表上执行特定的数据操纵语句及查询语句,生成结构化查询语言(SQL)数据库执行计划,记录运行时间及结果并进行对比。结果压缩表的空间占用较未压缩表降低1倍多,全表扫描操作的性能提升1倍,而压缩表与未压缩表的数据更新操作和查询操作性能无明显差异。结论联机事务处理的大型应用,可以利用Oracle11g数据库的新特性,采用OLTP表压缩技术,既不影响操作响应时间还可以明显降低磁盘占用空间,从而获得改善数据库性能的好处。

Oracle数据库;SQL;表压缩技术;HIS

1 OLTP表压缩功能概述

通常在数据库系统中,事务是工作的离散单位。联机事务处理系统(OLTP)实时地采集处理与事务相连的数据以及共享数据库和其他文件的位置变化信息。在联机事务处理中,事务是被立即执行的。这与批处理相反,一批事务被存储一段时间,然后再被执行,大多数批处理是在夜间进行的。联机事务处理的结果可以在数据库中立即获得,并以实时的方式发生。医院信息系统(HIS)中的大量应用都是OLTP的典型应用,其重要特征就是并发的用户多,要求响应速度快。随着计算机与通信技术的快速发展,HIS的应用也越来越广泛,用户数剧增,数据量暴涨,随之而来的性能问题愈发突出。

Oracle 11g数据库[1-2]引入了一个新的特性——OLTP表压缩,所谓OLTP表压缩就是允许在任何类型的数据操作过程中对数据进行压缩,例如通常的数据操纵语言(DML)的插入、更新、删除等。除此之外,表压缩减少了写操作的相关压缩开销,使之适用于OLTP业务模型的应用环境。

1.1 OLTP表压缩

Oracle数据库的OLTP表压缩专门设计了一个“唯一”(Unique)压缩算法来处理OLTP应用程序。该算法通过消除同一个数据库块内重复的值(这些值可以是跨越不同列的)来达到压缩的目的。压缩过后的块包含一个称为符号表的结构来保持压缩的原数据。当数据库块被压缩的时候,首先在符号表中为重复值添加一个副本,然后将这个重复值删除,这样每一个重复的值都可以被一个指向符号表中对应条目的一个更短的引用所替代。

该算法的革新性在于,压缩后的数据在数据库块内是独立的,那些用于将压缩后的数据恢复到其原始状态的原数据也存储在对应数据库块中。与那些在全局数据库上维护一个符号表的压缩算法比较,这个独特的设计因为在访问压缩数据的时候不用引进额外的I/O开销而显著提升了性能。

1.2 OLTP表压缩的益处

在给定环境下获得的压缩比率取决于给定的数据的自身性质,特别是数据自身的基数,如某数据的基数只有0~9这10个数字,显然在同样情况下相对于基数为0~100的数据,其占用空间少,压缩效果好。

OLTP表压缩,不仅仅在于节省磁盘存储空间,一个显著的优势是,在不事先对数据块进行解压缩就可以直接读取压缩数据块的内容。因此,也就不会因为访问压缩数据而使性能大幅降低。相反的,由于要访问的数据块数目少了,从而降低了I/O开销,也会提高性能。

1.3 最小化性能开销

OLTP表压缩对读取数据没有产生任何影响,而在写数据(即压缩数据)的时候必须做额外的工作,所以写操作的性能开销是不可避免的,因此,Oracle数据库采用批处理模式压缩块而不是每有一个写操作就进行数据的压缩。刚被初始化的数据块在达到数据块内部控制的阈值(80%)之前并不压缩。当一个事务导致数据块内部达到设定的阈值之后,数据块内部所有的内容都被压缩,这时数据块内数据量会低于阈值,如果之后的某个事务再次导致数据块内部达到设定的阈值之后就再次对整个数据块进行压缩。重复执行这个过程,直到Oracle数据库认为进一步压缩不会获得合适的收益为止。在整个过程中,只有触发块压缩的事务就会有轻微的压缩开销,因此,大多数的OLTP事务的性能在压缩与未压缩的数据块上基本相同。

2 评测试验目的

在我院的HIS应用中,每天都会不断产生的大量数据,这些数据占用了大量的磁盘存储空间,这也是物理I/O繁忙影响性能的重要因素,如果能够利用Oracle11g数据库提供的面向OLTP应用的表压缩技术,势必会在改善数据库应用的性能方面带来好处。本次试验的主要目的是应用实际数据来评测Oracle 11g数据库表压缩技术在压缩完成之后对数据库性能有多大影响,数据的压缩比是多少。通过对未压缩的表和压缩过的表分别进行查询和更新操作,对比压缩表与未压缩表的执行计划,记录两种表对这些操作的所需时间,量化两者联机事务处理操作对数据库性能的影响。另一方面,在试验过程批量导入数据的同时,对比数据批量导入到未压缩表及压缩表的所需时间,量化两者批量操作对数据库性能[3-5]的影响。

3 评测试验设计及环境

3.1 评测试验设计

(1)在同一台数据库服务器上进行试验。为了准确地反映出压缩表与未压缩表之间在查询及更新方面的性能差异,需要在相同的环境下执行操作并记录时间,为了保证试验的准确性,我们用同一台服务器进行试验。

(2)在相同的数据库内存环境下进行试验。为了保证试验的公平性,在每次查询及更新操作之前,需要清除数据库高速缓存及共享池里的数据。

(3)记录操作时间。为保证压缩表和未压缩表操作比较的准确性,在每次执行查询和更新操作前后,都记录系统时间。

(4)模拟真实数据。为了更能反映评测的真实性,本次试验的表结构及数据采用在用HIS的病人生命体征数据采集表。

3.2 评测试验环境[6-7]

本次试验用的服务器是一台4核的PC机,具体配置为:主机Dell Vostro 260,CPU为Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz,内存4G,操作系统为Microsoft Windows 7旗舰版 Service Pack 1,数据库版本为Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit。

4 评测试验过程

对比试验过程如下:① 创建试验表结构,包括非压缩表和压缩表;② 批量数据导入操作,首先向未压缩表中导入700万行数据,记录导入所需的时间及占用的数据块个数,然后向压缩表中同样导入这700万行数据,记录导入所需的时间及占用的数据块个数,对比两种方式的性能差异;③ 在没有索引的环境中,执行更新操作,对比两种方式的性能差异;④ 创建索引;⑤ 在有索引的环境中,执行更新操作,对比两种方式的性能[6-7]差异;⑥ 查询操作,对压缩表和未压缩表分别进行全表扫描和普通查询,对比两种方式的性能差异。

5 评测试验结果及分析

通过本次试验记录,得到压缩表与未压缩表的各项试验操作的执行时间,综合对比数据汇总,见表1。

表1 压缩表与未压缩表的各项试验操作及执行时间综合对比数据汇总

从表1数据的对比可以看出,在相同的试验环境下,对于批量插入操作,压缩表比未压缩表慢92.59 s,性能降低了76.62%;对于全表扫描操作,压缩表比未压缩表快1.17 s,性能提升了1倍;对于空间占用数据量,压缩表比未压缩表少占用23789个数据块,空间占用率下降111%;对于数据更新操作和数据查询操作,不论加还是不加索引,压缩表与未压缩表在时间上相差不大,由此可见,两种表对于数据更新操作和数据查询操作无明显差异。

6 评测小结

OLTP表压缩功能是Oracle 11g数据库的新特性,当执行批量插入数据的同时,对表数据进行压缩,试验结果表明,表压缩对批量插入操作的性能影响比较大,导致性能明显下降,而对于数据的查询与更新操作,数据压缩与不压缩,基本无明显差异,而对于全表扫描的查询操作,由于压缩表占用的数据块减少1倍,由此使得查询性能可以提升1倍。

通过试验证明,HIS中大型联机事务处理的应用数据,可以考虑利用Oracle 11g数据库的新特性,采用OLTP表压缩技术,在不影响运行性能的前提下,尽可能减少数据的磁盘占用空间,从而获得数据库性能进一步改善的好处。

[1] 刘志敏.Oracle数据库应用管理解决方案[M].北京:电子工业出版社,2002.

[2] Thomas Kyte.Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构[M].2版.北京:人民邮电出版社,2011.

[3] 马锡坤.基于 Oracle的在线式应用容灾系统的建立[J].中国医疗设备,2012,27(2):38-40.

[4] 巢子杰. Oracle数据库优化探究[J].软件导刊,2010,(2):142-144.

[5] 魏亚楠,宋义秋.Oracle数据库应用系统的性能优化[J].2010, (8):204-206.

[6] Oracle® Database SQL Language Reference 11g Release 2 (11.2) E10592-02[EB/OL](2001-11-01)[2009-08-02].http://docs.oracle.com/cd/E14072_01/server.112/e10592.pdf.

[7] Oracle® Database Concepts 11g Release 2 (11.2) E10713-02[EB/ OL](1993-05-07)[2009-08-15].http://docs.oracle.com/cd/ E14072_01/server.112/e10713.pdf.

Evaluation of OLTP Table Compression of Oracle 11g Database

SHI Hong-fei, LIU Zhi-min
Computer Room, General Hospital of PLA, Beijing 100853, China

ObjectiveUsing quantitative indicators to contrast query of compressed table and noncompressed table, and update their operation performance to make technical preparations for database application of the large scale online transaction processing (OLTP).MethodsMaking experimental design and building appropriate platform. Performing specifc data manipulation and query statements on the compressed table and non-compressed tables respectively, and generating execution plan of structured query language (SQL) database. Then recording and comparing the running time and results.ResultsSpace occupied by the compressed table is less than half of space occupied by non-compressed table while full table scan operation performance is doubled. However, there is no signifcant difference between performance of data update and query operations of compressed and non-compressed tables.ConclusionLarge scale OLTP applications can take advantage of the new features of Oracle11g for table compression technology, which neither affects the operation response time nor signifcantly reduces the disk space so as to obtain the benefts of improving performance.

Oracle database; structured query language; table compression technology; hospital information system

TP311.13

A

10.3969/j.issn.1674-1633.2013.05.011

1674-1633(2013)05-0035-03

2013-02-25

国家高技术研究发展计划(863计划)(2012AA02A601)。

本文作者:史洪飞,解放军总医院计算机室主任。

刘志敏,高级工程师。

通讯作者邮箱:liuzhimin0724@163.com

猜你喜欢
联机批量评测
多联机焓差实验室制冷量测试不确定度分析
批量提交在配置分发中的应用
次时代主机微软XSX全方位评测(下)
次时代主机微软XSX全方位评测(上)
海尔发布全球首个物联多联机云服务平台
再立标杆,天加GHP燃气多联机 助力神木市LNG站建设
采用经济数控车床批量车削孔类工件的再实践
局部UV上光工艺探究
攻坡新利器,TOKEN VENTOUS评测
多品种变批量数控生产中快速装夹应用技术