陳 鑫
(長治學院 計算機系,山西 長治 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.