db2look -d <dbname> -l -o storage.out
db2look -d <dbname> -f -fd -o config.out
db2look -d <dbname> -e -a -m -o db2look.out
db2look -d <dbname> -e -a -m -t table1 table2 ....
tableX -o table.ddl
現在,讓我們更具體地看一看這些 db2look 命令選項?! ∩删彌_池、表空間和數據庫分區組信息。db2look -d <dbname> -l -o storage.out
db2look -d -l -o storage.out 下面是對以上 db2look 命令中所用選項的描述: -d:數據庫名 —— 該選項必須指定。 -l:生成數據庫布局。這是用于數據庫分區組、緩沖池和表空間的布局?! ?o:將輸出重新定向到給定的文件名。假如未指定 -o 選項,然么輸出將為標準輸出(stdout),通常是輸出到屏幕。 -l 選項對于模擬生產環境十分重要。理想情況下,您需要具有相同的緩沖池、數據庫分區組(假如處于多分區環境中)和表空間信息(包括臨時表空間)。但是,假如您受到了內存約束,無法分配生產中所具有的大型緩沖池,那么就使用 db2fopt 命令。我稍后將在本小節中更具體地討論該命令。 并非總是可以在測試中設置與生產中相同的表空間。例如,可能設置了大型設備,卻無法靈活地在測試中創建相同的設備大小?;蛘撸赡芨緹o法在測試環境中獲得單獨的表空間設備。此外,或許無法在測試中設置與生產中相同的路徑。需要適當地更改路徑、設備和文件以適應測試環境。 上一頁123下一頁 下面是優化器為表空間所使用的重要信息。這就是您需要確保在測試和生產中相同的信息。(注重:這里所展示的數字是一個例子。您應在測試中使用與您生產中相同的設置。)PREFETCHSIZE 16
EXTENTSIZE 16
OVERHEAD 12.670000
TRANSFERRATE 0.180000
假如生產中表空間是“由數據庫治理的”,那么在測試中也應該是“由數據庫治理的”。假如它在生產中是“由系統治理的”,那在測試中也應該是這樣的方式?! ∽⒅兀杭偃邕@是具有多個物理分區(MPP)的系統,那么測試中數據庫分區組中的分區數目就必須相同。然而,物理機器的數目不必相同。測試和生產中整個 MPP 環境中邏輯分區的數目必須相同?! ∩膳渲脜岛妥员碜兞?code>db2look -d <dbname> -f -fd -o config.out 這里,我將使用下列參數: -f:提取配置參數和注冊表變量。假如指定了該選項,就會忽略 -wrapper 和 -server 選項?! ?fd:為 opt_buffpage 和 opt_sortheap 生成 db2fopt 語句,以及其他配置和注冊表設置?! ≡撁畹妮敵鋈缦滤荆骸 ∏鍐?2. db2look 命令的示例輸出:$ db2look -d sample -f -fd
-- No userid was specified, db2look tries to use
Environment variable USER
-- USER is: SKAPOOR
-- This CLP file was created using DB2LOOK Version 8.2
-- Timestamp: Sat Mar 26 00:13:36 EST 2005
-- Database Name: SAMPLE
-- Database Manager Version: DB2/6000 Version 8.2.2
-- Database Codepage: 819
-- Database Collating Sequence is: UNIQUE
CONNECT TO SAMPLE;
--------------------------------------------------------
-- Database and Database Manager configuration parameters
--------------------------------------------------------
UPDATE DBM CFG USING cpuspeed 6.523521e-07;
UPDATE DBM CFG USING intra_parallel NO;
UPDATE DBM CFG USING federated NO;
UPDATE DBM CFG USING fed_noauth NO;
!db2fopt SAMPLE update opt_buffpage 50000;
!db2fopt SAMPLE update opt_sortheap 10000;
UPDATE DB CFG FOR SAMPLE USING locklist 1000;
UPDATE DB CFG FOR SAMPLE USING dft_degree 1;
UPDATE DB CFG FOR SAMPLE USING maxlocks 10;
UPDATE DB CFG FOR SAMPLE USING avg_appls 1;
UPDATE DB CFG FOR SAMPLE USING stmtheap 2048;
UPDATE DB CFG FOR SAMPLE USING dft_queryopt 5;
---------------------------------
-- Environment Variables settings
---------------------------------
!db2set DB2_ANTIJOIN=yes;
!db2set DB2_INLIST_TO_NLJN=yes;
COMMIT WORK;
CONNECT RESET;
TERMINATE;
-f 和 -fd 選項是用于提取配置參數和注冊表變量的要害選項,而優化器將在訪問計劃階段使用這些配置參數和環境。在上面的 清單 2 中,請注重下列 -fd 選項所產生的輸出:!db2fopt SAMPLE update opt_buffpage 50000;
!db2fopt SAMPLE update opt_sortheap 10000;
db2fopt 命令告訴優化器為“緩沖池大?。˙uffer pool size)”使用指定的值,而非將可用緩沖池變量的頁面加起來。(db2exfmt 輸出中的緩沖池大小將在下面的 緩沖池大小 一節中進行進一步的討論。)例如,假設由于測試系統上的內存約束,您無法獲得大型的緩沖池,并且希望將大小配置得相同,實際上卻不是真正有這么大。使用將生成必要的 db2fopt 命令的 -fd 選項來告訴優化器使用指定大小,而非基于對該數據庫可用的緩沖池進行計算。 上一頁123 新聞熱點
疑難解答