陈 鑫
(长治学院 计算机系,山西 长治 046011)
对于数据库来说,查询处理的效率是系统性能的主要指标之一,并行数据库系统试图利用并行性来提高查询处理效率,但是“并行不等于高效”。具体而言,主要是在并行性的开发过程中可能产生出新的“无意义”的工作,这些无效工作将会抵消并行性带来的效果,因此并行性的充分开发不一定导致高效的产生。而查询优化是提高查询处理效率的有效手段,所以把并行性和查询优化相结合是提高查询处理效率的有效途径,即在并行处理的基础上,进一步利用有效合理的查询优化策略,尽量避免无效事务,从而最大的提高查询处理效率。
并行查询其优势就是可以通过多个线程来处理查询作业,从而提高查询的的效率。SQL Server数据库为具有多个CPU的数据库服务器提供并行查询功能,以优化查询作业的性能。也就是说,只要数据库服务器有多个CPU,则数据库系统就可以使用多个操作系统进程并执行查询操作,来加速完成查询作业。
为方便算法的设计,给出以下标记说明:
(1)T:表示数据操作并行执行算法的响应时间;
(2)Tjcpu:表示算法第j步中的cpu时间;
(3)Tjdisk:表示算法第j步中的磁盘I/O时间;
(4)Tjnet:表示算法第j步中的网络传输时间;
其中Tjcpu是由构造一个关联模式花费的cpu时间+启动互联网接收和发送数据的cpu时间+启动顺序磁盘I/O用的cpu时间;
因为算法设计考虑了重叠,Tj可取Tjcpu、Tjdisk、Tjnet三者中的最大值作为第j步中并行执行算法的响应时间:
而算法的响应时间:
传统的隐式和显式连接并行执行算法由建表阶段、探询阶段两部分组成,它的响应时间T由T=得到。
第一步:建表阶段。
从磁盘读出对C类进行选择操作和投影操作的结果,因为平均每个C类对象与α 个D类对象相关联,即平均每个C类对象的连接性质由α 个二元组(Oid,Oid)构成,且共需要为α*{C}*sel/N个部分对象建立表格,取每个部分对象建表的cpu开销为(thash+tinset)。
第二步:探询阶段。
从磁盘读出对D类进行选择操作和投影操作的结果,根据已建的表格,匹配符合连接条件的C类和D类的部分对象,对于隐式连接,这种对象匹配的cpu时间为(thash+F*tcomp)最后将结果存入磁盘。
基于合格标记的隐式和显式连接并行执行算法由建表阶段、探询建表阶段和探询阶段三部分组成,它的响应时间是
模拟的工作环境是:多台SGI Challenge服务器(MIPS R4400芯片,128MIPS)通过网络互联,网络启动时间为0.05 ms。测试参数取值如表1所示。
表1 测试参数
通过对模拟测试结果图中ratio随相关数据的变化进行观察,分析其结果,可以得出以下的一些结论:
(1)基于合格标记的连接并行执行算法优于传统的连接并行执行算法;
(2)基于传统的隐式连接并行执行算法的响应时间取决于磁盘I/O时间和网络传输时间,基于合格标记的隐式连接并行执行算法的响应时间取决于磁盘I/O时间CPU时间;
(3)基于传统的显式连接并行执行算法的响应时间取决于磁盘I/O的时间,而基于合格标记的显式连接并行执行算法的响应时间取决于CPU时间;
(4)隐式连接的并行执行算法中结点数目的变化对ratio不产生显著影响,而显式连接的并行执行算法的ratio随着结点数目的增加而减少,原因是随着结点数N的增加,传统的显式连接操作并行执行算法的磁盘I/O量显著减少,而基于合格标记的显式连接并行执行算法的cpu开销没有明显减少。
(5)通过改变类N、Sel、Sbig等重要参数的取值,观察两种算法的响应时间比值ratio可以看出,在相同的参数值下,显式连接的并行执行算法的ratio要高于隐式连接的并行执行算法,说明相比之下,在不知道两个类之间是否存在关系的情况下,即显式连接的并行执行算法能达到更高的优化效果。
(6)隐式连接的并行执行算法中ratio的值随着关联系数α 的增加而减少,原因是随着α 的增加,传统的隐式连接操作并行执行算法的磁盘I/O量和网络传输量增加不明显,基于合格标记的隐式连接并行执行算法的磁盘I/O量和cpu开销增长显著,而显式连接的并行执行算法的ratio与关联系数α 的值无关,原因是显式连接的两个类之间不存在关联。
众所周知,查询优化是提高查询处理效率的有效手段,而并行性与查询优化相结合是提高查询处理效率的重要方法,即在并行查询处理的基础上,进一步利用合理有效的查询策略,进一步提高查询处理的效率。
在传统的连接操作并行执行算法的基础上,研究了基于合格标记的连接操作并行执行算法,而且对显式连接和隐式连接两种连接操作从理论上以及模拟实验两方面进行了分析和评价,得出这种基于合格标记的优化策略确实可以提高并行执行的效率。而且可以看出隐式连接适合两个有关联类之间的连接并行执行操作,显式连接适合不相关的两个类之间进行连接并行执行操作。
[1]王珊,肖艳芹.内存数据库关键技术研究[J].计算机应用,2007,(2):232-235.
[2]朱凤华,陈昌生,孙永强,赖树华.并行查询优化策略[J].计算机工程,2000,(9):127-131.
[3]刘焕婷,张凌燕.分布式数据库系统查询策略研究[J].计算机应用研究,2002,(8):153-155.
[4]王勇智,胡虚怀,唐志平.提髙并行数据库性能的几点思考[J].计算机现代化,2005,(6):184-187.