下一頁 1 2 3 4 5 6 7
簡介
DB2 UDB for Linux®、UNIX® 和 Windows® 從 7.1 版開始就提供了 DB2 Spatial Extender,用于支持空間數據的存儲、管理和修改??梢杂脤S糜诳臻g信息及其屬性的結構來擴展已有的數據類型。 對于每個數據庫系統,無論它支持的功能有多好,如果不能為構建在系統上的應用程序提供所要求的性能,就毫無價值。因此,性能調優是一項非常關鍵的任務。這不僅是數據庫管理員的任務,也是應用程序開發人員的任務。DB2 UDB 已經提供了各種各樣的工具來幫助調優和監視系統,例如“Configuration Advisor”和“Design Advisor”。它們都可以通過 Control Center 訪問。 DB2 Spatial Extender 附帶了一個 Index Advisor,可以用它來優化包含空間數據的列上定義的索引。然而,索引調優只是性能調優的一部分,還可以通過調整其他一些參數來提高空間操作的性能,例如 inline length、聚集或表空間類型。在下面幾節中,我們將解釋其中每個參數,并展示它們相對于未經修改的系統的效果。我們在一臺配有 1.2 GHz CPU 和 1 GB 物理內存的 IBM ThinkPad T30 上進行了評測。操作系統是 SUSE Linux 9.3,所有評測都基于帶 FixPak 9 的 DB2 UDB Version 8.2。請注意,我們沒有執行實際的基準測試,而是集中在單個更改上,這樣做只是為了展示特定調優選項的效果。您不能簡單地將結果中顯示的數據與其他系統進行比較。 基本性能調優 在任何性能調優過程中,第一步是為系統取得一個良好的基線。運行 DB2 Configuration Advisor 對該任務有所幫助(請參閱 參考資料 一節,獲得對 DB2 Configuration Advisor 的介紹和關于調優數據庫性能的信息)??梢詮?Control Center 中通過右鍵單擊一個數據庫來啟動 Configuration Advisor,如圖 1 所示。 圖 1. 啟動 Configuration Advisor 您只需回答關于整個系統的一些簡單問題,在任何情況下您應該都知道這些問題。下面是這些問題的一個簡化列表,并提供了我們作出的選擇,后者以 斜體 顯示。從我們的選擇中可以看出,我們從一開始就關注性能。您具有的場景可能要求不同的選擇,例如對于鎖和恢復方面的問題就是如此。 在回答這組問題之后,Configuration Advisor 將提供對建議修改項的總結?,F在您可以立即應用建議的修改,或將一個任務保存在任務中心。您應該檢查每一項修改,確定它們對系統是否有意義。如果想根據自己的需要進行調整,那么可以在任務中心創建一個包含配置修改的任務,然后按照自己的需要修改任務腳本。在系統上運行 Configuration Advisor 之后可以得到如圖 2 所示的結果。最值得注意的是對缺省緩沖池大小的修改。增加緩沖池大小通常是提高系統整體性能的最重要的決定,因為它指定可以將多少數據緩存在內存中,從而減少對(較慢的)磁盤 I/O 的需要。 圖 2. Configuration Advisor 的建議 其他更改主要針對將可用內存劃分出一些必要的緩存,例如包緩存和編目緩存,或者調整短事務的設置(日志記錄和排序)。除了減少輔助日志文件的決定之外,所有更改都將被接受,不需任何人為干涉。我們將輔助日志文件的數量設為 10,以避免在空間導入操作期間可能發生的問題。取決于您的系統以及在那組問題中給出的答案,您得到的建議可能不同。 性能比較 首先在一個新安裝的系統上,在應用建議的配置更改之前,我們運行一組空間操作。這些操作的執行時間通過操作系統命令time 或 DB2 的db2batch 工具來測量。最后,我們清除數據庫,應用 DB2 Configuration Advisor 建議的配置,并重復相同的操作。為得到比較可靠的結果,我們多次執行導入操作和查詢,對測量到的時間取平均值。這些空間操作如下所示: 清單 1 展示了確切的步驟和它們產生的性能結果??梢栽?STRONG>下載 一節中找到 SQL 腳本 test_config_advisor.sql。 清單 1. 未調優的數據庫上的空間操作
$ time db2se import_shape testdb -fileName /home/stolze/europe/roads -srsName WGS84_SRS_1003 -tableName roads -createTableFlag 1 -spatialColumn shape -typeName ST_LineString -idColumn id -commitScope 1500 -messagesFile /home/stolze/import.msg GSE0000I The operation was completed suclearcase/" target="_blank" >ccessfully. real 2m19.086s user 0m0.050s sys 0m0.021s $ db2batch -d testdb -f test_config_advisor.sql -i complete -s on --------------------------------------------- Statement number: 1 SELECT id FROM roads WHERE db2gse.ST_Intersects(shape, db2gse.ST_LineString( 'linestring(10 50, 20 40)', 1003)) = 1 Prepare Time is: 0.000 seconds Execute Time is: 1.248 seconds Fetch Time is: 0.000 seconds Elapsed Time is: 1.248 seconds --------------------------------------------- Statement number: 2 CREATE INDEX roads_grid_index ON roads(shape) EXTEND USING db2gse.spatial_index(0.27, 0.54, 1.6) Elapsed Time is: 25.503 seconds ---------------------------------------------
注意,測試系統使用的配置是次優的,因為導入的數據是從與數據庫和數據庫日志在同一個硬盤驅動器上的文件中讀取的。因而,讀操作與日志寫和緩沖池中的數據頁的寫操作之間存在競爭??赡苄枰獙⒏鞣N特定于磁盤的任務分配到不同的文件系統上。當使用 DB2 Spatial Extender 導入工具導入 shapefile 文件時,建議不要嘗試直接從 CD 裝載數據,而是先將它復制到一個硬盤上。CD-ROM 驅動器不是很適合讀 shapefile 文件的訪問模式,因此整個操作的速度會急劇降慢。
在應用了 Configuration Advisor 的建議之后,重復前面列出的步驟就產生了清單 2 中的結果??梢钥吹?,僅僅是導入操作的性能就提高了 11%,查詢的速度快了 28%,甚至創建索引所花的時間也只有之前的 90%。所以不應當忽視最基本的性能調優。
清單 2. 調優后的數據庫上的空間操作
$ time db2se import_shape testdb -fileName /home/stolze/europe/roads -srsName WGS84_SRS_1003 -tableName roads -createTableFlag 1 -spatialColumn shape -typeName ST_LineString -idColumn id -commitScope 1500 -messagesFile /home/stolze/import.msg GSE0000I The operation was completed successfully. real 2m2.848s user 0m0.051s sys 0m0.027s $ db2batch -d testdb -f test_config_advisor.sql -i complete -s on --------------------------------------------- Statement number: 1 SELECT id FROM roads WHERE db2gse.ST_Intersects(shape, db2gse.ST_LineString( 'linestring(10 50, 20 40)', 1003)) = 1 Prepare Time is: 0.000 seconds Execute Time is: 0.895 seconds Fetch Time is: 0.000 seconds Elapsed Time is: 0.895 seconds --------------------------------------------- Statement number: 2 CREATE INDEX roads_grid_index ON roads(shape) EXTEND USING db2gse.spatial_index(0.27, 0.54, 1.6) Elapsed Time is: 22.980 seconds --------------------------------------------- |
原文轉自:http://www.anti-gravitydesign.com