程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 對DB2 UDB v8.1 以及其數據庫進行調優的最好方案

對DB2 UDB v8.1 以及其數據庫進行調優的最好方案

編輯:DB2教程

以下的文章主要向大家描述的是對DB2 UDB v8.1 以及其數據庫進行調優的最好的實踐方案,本文主要是為您從 DB2® UDB 數據庫與其應用程序裡獲得最佳性能提供了所需的幫助。作者聯系實踐。

討論了在開發的各個不同階段以及對生產系統可以應用的一些技巧,包括數據庫設計和布局、數據庫配置、SQL 語句設計、維護以及監視等方面的技巧。

簡介

性能是關系到隨需應變型應用程序成功與否的關鍵。當那些應用程序使用 IBM® DB2 Universal Database™ 作為數據存儲時,至關重要的是,從一開始就應該知道有關如何在 DB2 UDB 上取得盡可能好的性能的基礎知識。在本文中,我將給出關於調優 DB2 UDB v8.1 系統的一些比較深入的建議。

我們將談論這一過程中自始至終存在的性能問題。您可以遵循從創建一個新數據庫到運行應用程序這之間的流程。通過本文可以看到如何使用 DB2 自動配置實用程序來初始配置數據庫管理器和數據庫環境。接著,我將討論創建緩沖池、表空間、表和索引的最佳實踐。另外,您可能還想改變一些重要配置參數的初始值,以便更好地支持應用程序,因此我們還將簡介這些配置參數。

我們將論述基於監視器(monitor)細節輸出的調優,從而展示如何使用快照監視(snapshot monitoring)幫助調優 SQL、緩沖池和各種不同的數據庫管理器以及數據庫配置參數。接著,我們將進一步研究應用程序發送給 DB2 的 SQL。通過使用 Explain,可以生成 SQL 采用的訪問計劃(Access plan),並尋找可以進一步優化的機會。

我們將考察 Design Advisor 這樣一個工具,它可以根據所提供的 SQL 負載推薦出新的索引,或者評估現有的索引。最後,我們還將討論一些 DB2 SQL 選項。

此外,持續(on-going)維護對於維持最佳性能非常重要。所以我們將討論一些可以幫助我們進行持續維護的實用程序。對於那些正使用 DB2 ESE Database Partitioning Feature (DPF) 的讀者,我會用一節的篇幅談論為使數據庫高效運行而應該考慮的一些問題。

有時候可能會存在某種外在的瓶頸(來自 DB2)而使您無法達到性能目標,本文列出了一些常見的瓶頸,以及用於監視這些瓶頸的實用程序。最後,本文列出了一些有價值的 IBM 資源,以幫助您發現有價值的 DB2 信息。

本文是為那些在 DB2 數據庫管理方面有中級技能的人而寫的。

讀前須知

在開始性能調優過程之前,應確保您已經應用了最新的 DB2 修訂包(fix pack)。修訂包常常會帶來性能的提高。我們要使用 DB2 FixPak 4 作為本文的基礎。如果您使用的是 FP4 之前的版本,那麼這種環境可能不能提供這裡討論的所有選項。

在進行調優時,最好是有一個關於數據庫使用(即應用程序運行在 DB2 上的工作負載)的可再現場景,這樣就可以利用這種可再現場景來量身定制調優效果。例如,如果工作負載在不同的運行期間所經歷的時間上有 10% 的變化量,那麼就很難知道調優的真正效果如何。此外,如果在兩次運行中各自的工作負載不一樣,也就難於衡量數據庫管理器和數據庫配置參數所發生的變化。

堅持跟蹤所有的變化。這樣有助於開發調優腳本或者建議,以作為供其他 DBA 參考的歷史,同時也有助於防止遵循不良的變化。

在大多數小節的最後,都有一些指向 DB2 v8 Html Documentation 中相關小節的鏈接。在線文檔可以在 http://publib.boulder.ibm.com/infocenter/db2help/index.JSP上找到。

“十大”性能增強推動器

做了下面十件事情,您就幾乎可以使數據庫獲得最佳性能。通常您會發現,通過大約 10% 的配置變化,就可以達到最佳性能的 90%。我將在下面適當的小節(在圓括號中標出)中詳細討論其中的每一條:

確保有足夠的磁盤(每個 CPU 有 6-10 個磁盤才是一個好的開端)。每個表空間的容器應該跨越所有可用的磁盤。有些表空間,例如 SYSCATSPACE 以及那些表數量不多的表空間,不需要展開到所有磁盤上,而那些具有大型用戶或臨時表的表空間則應該跨越所有磁盤。( 表空間)。

緩沖池應該占用可用內存的大約 75% (OLTP) 或 50% (OLAP)( 緩沖池)。

應該對所有表執行 runstats,包括系統編目表( Runstats)。

使用 Design Advisor 為 SQL 工作負載推薦索引和檢查索引( Design Advisor)。

使用 Configuration Advisor 為應用程序環境配置數據庫管理器和數據庫( Configuration Advisor)。

日志記錄應該在一個獨立的高速驅動器上進行,該驅動器由 NEWLOGPATH 數據庫配置參數指定( Experimenting)。

通過頻繁的提交可以增加並發性( SQL 語句調優)。

應該增加 SORTHEAP,以避免排序溢出( DBM 和 DB 配置)。

對於系統編目表空間和臨時表空間,表空間類型應該為 SMS,而對於其他表空間,表空間類型應為 DMS( raw device 或者是文件)。運行 db2empfa,以便支持用於 SMS 表空間的多頁(multi-page )文件的空間分配。這將允許 SMS 表空間一次增長一個區段(Extend),而不是一頁,從而可以加快那些大型的插入操作和溢出磁盤的排序操作( 表空間)。

對於重復的語句,使用參數標記 ( SQL 語句調優)。

創建數據庫

創建一個數據庫時,系統會缺省地創建 3 個系統管理存儲(System Managed Storage,SMS) 表空間(SYSCATSPACE、TEMPSPACE1 和 USERSPACE),以及一個 4 MB 的緩沖池(IBMDEFAULTBP),這些表空間和緩沖池的頁面大小都是 4 KB 。根據下面的建議,先刪除 TEMPSPACE1 和 USERSPACE 然後再重新創建它們,通常這是一種可取的做法。

幾乎在所有情況下, SYSCATSPACE 都不需要再作進一步的優化,但是如果將其容器展開到幾個磁盤上,性能上可能會有少量提升。( 稍後討論)。

在創建數據庫時,您可以利用自動配置選項來根據環境對數據庫進行最初的配置。當應用程序以編程方式創建 DB2 UDB v8.1  數據庫時,這樣做很方便,因為可以將這些選項從應用程序提供給 DB2。在自動配置數據庫時不得不用到的另一個選項是更強大的 Configuration Advisor GUI,它不但可以配置數據庫,而且還可以配置實例。

不過,要使用 Configuration Advisor,數據庫必須首先存在。我們將在 隨後的小節中討論 Configuration Advisor。

在 清單 1中,我們使用 CREATE DATABASE 命令的自動配置選項在 Windows 中創建了一個數據庫,該數據庫有一個跨越兩個可用磁盤的 SYSCATSPACE。

清單 1. 使用自動配置選項創建數據庫

  1. create database prod1 catalog tablespace managed by system using ('c:\\proddb\\cattbs\\01','  
  2. d:\\proddb\\cattbs\\02') extentsize 16 prefetchsize 32 autocon圖 using mem_percent 50 workload_type simple num_stmts 10  
  3. tpm 20 admin_priority performance num_local_apps 2 num_remote_aPPS 200 isolation CS bp_resizeable yes apply db and dbm  

表 1顯示了有效的自動配置輸入關鍵字以及值:

表 1. 自動配置選項

關鍵字 有效值 缺省值 描述

mem_percent 1-100 25 分配給數據庫的物理存儲空間的百分比。如果本服務器(不包括操作系統)上運行有其他應用程序,那麼將其設為小於 100 的某個值

workload_type simple, mixed, complex mixed simple 型工作負載傾向於 I/O 密集型,並且大多數是事務處理(OLTP),而 complex 型工作負載則傾向於 CPU 密集型,並且大多數是查詢(OLAP/DSS)

num_stmts 1-1000000 25 每個工作單元包含的語句條數

tpm 1-200000 60 每分鐘的事務數。

admin_priority performance, recovery, both both 優化以獲得更好性能(每分鐘更多的事務數)或更好的回復時間

num_local_aPPS 0-5000 0 連接的本地應用程序的數目

num_remote_aPPS 0-5000 100 連接的遠程應用程序的數目

isolation RR, RS, CS, UR RR 連接到該數據庫的應用程序的隔離級別(Repeatable Read、Read Stability、Cursor Stability 和 Uncommitted Read)。

bp_resizeable yes, no yes 是否可以在線更改緩沖池大小

  1. Configuration Advisor 

如果您在創建數據庫的時候已經使用了自動配置,那麼這一步就不是很重要了。Configuration Advisor 是一個 GUI 工具,它允許根據您針對一系列問題給出的回答自動配置數據庫和實例。通過使用這種工具,常常可以取得相當可觀的DB2 UDB v8.1 性能提升。

這個工具可以從 Control Center 中通過右鍵單擊數據庫並選擇 "Configuration Advisor" 來打開。當您回答完所有問題後,就可以生成結果,還可以選擇應用結果。 圖 1展示了結果頁面的屏幕快照:

圖 1. Configuration Advisor Results 屏幕

調優 DB2 UDB v8.1 及其數據庫的最佳實踐

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved