日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

哄骗DB2look 重新创立优化器访问筹划(3)

發布時間:2024/9/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 哄骗DB2look 重新创立优化器访问筹划(3) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?
在測試系統上重新創立優化器/盤問籌劃問題標示例:
?
示例 1:
?
OS:Windows 2000
?
DB2LEVEL:V8.2 Fixpack 8 ESE 單分區
?
?
測試并復制相同的 OS 和 db2level。
?
數據庫:
?
消耗數據庫:SAMPLE
?
測試數據庫:DUMMYDB
?
哄騙下列呼吁創立 Sample 數據庫:db2sampl
?
哄騙下列呼吁創立 Dummy 數據庫:
?
db2 create db DUMMYDB
?
注重:用與消耗中相同的代碼頁、地區和排序序列創立 TEST 數據庫。
?
消耗環境:
?
---------------------------------------
-- Database SAMPLE and Database Manager
configuration parameters
---------------------------------------
UPDATE DBM CFG USING cpuspeed 9.446886e-007;
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 250;
!db2fopt SAMPLE update opt_sortheap 256;
UPDATE DB CFG FOR SAMPLE USING locklist 50;
UPDATE DB CFG FOR SAMPLE USING dft_degree 1;
UPDATE DB CFG FOR SAMPLE USING maxlocks 22;
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_INLIST_TO_NLJN=yes;
!db2set DB2_HASH_JOIN=yes;
除了以上設置,還應在數據庫設置中注重下列設置:
?
db2 get db cfg for sample > dbcfg_sample.out
Database heap (4KB) (DBHEAP) = 600
SQL statement heap (4KB) (STMTHEAP) = 2048
Number of frequent values retained (NUM_FREQVALUES) = 10
Number of quantiles retained (NUM_QUANTILES) = 20
?
?
確保在修負數據庫治理器設置(dbm cfg)之后終了并啟動該實例。
關于 sample 數據庫,按下列方式對 ORG 和 SALES 表運轉 runstats:
?
db2 connect to sample
db2 runstats on table <schema>.org with distribution
and indexes all
db2 runstats on table <schema>.sales with distribution
and indexes all
db2 terminate
?
?
?
目前,經過實驗 EXPLAIN.DDL 文件生成 EXPLAIN 表,
該文件在 \sqllib\misc 目次下:
?
db2 connect to sample
db2 -tvf <intall path>\EXPLAIN.DDL
db2 terminate
?
?
?
在名為 query.sql 的文件中保存下列呼吁:
?
connect to sample
set current explain mode explain
select * from org a, staff b where
a.deptnumb=b.dept and b.dept=15
set current explain mode no
terminate
?
?
?
目前,按下列方式實驗該文件:
?
db2 -tvf query.sql
?
?
下面將僅僅以正文形式編譯盤問。您將在屏幕上看到:
?
C:\>db2 -tvf query.sql
connect to sample
Database Connection Information
Database server = DB2/NT 8.2.1
SQL authorization ID = SKAPOOR
Local database alias = SAMPLE
set current explain mode explain
DB20000I The SQL command completed
successfully.
select * from org a, staff b where
a.deptnumb=b.dept and b.dept=15
SQL0217W The statement was not executed
as only Explain information requests
are being processed. SQLSTATE=01604
set current explain mode no
DB20000I The SQL command completed successfully.
C:\>db2 terminate
DB20000I The TERMINATE command completed successfully
哄騙 db2exfmt 生成訪問籌劃,如下:
?
db2exfmt -d SAMPLE -g TIC -w -1
-n % -s % -# 0
-o prod_sample_exfmt.txt
?
?
?
反省 prod_sample_exfmt.txt 文件的內容。
您將看到生成了下面的訪問籌劃:
?
Access Plan:
-----------
Total Cost: 25.8823
Query Degree: 1
Rows
RETURN
( 1)
Cost
I/O
|
4
HSJOIN
( 2)
25.8823
2
/----- -----\
4 1
TBSCAN TBSCAN
( 3) ( 4)
12.9682 12.913
1 1
| |
35 8
TABLE: SKAPOOR TABLE: SKAPOOR
STAFF ORG
?
目前,這便是您要在消耗 sample 數據庫上延續的籌劃。您需求在測試環境中模擬該籌劃。
?
從消耗 sample 數據庫中搜集下列信息:
?
db2look -d SAMPLE -l -o storage.out
db2look -d SAMPLE -f -fd -o config.out
db2look -d SAMPLE -e -a -m -t ORG SALES -o table.ddl
?
?
?
測試環境:
?
修正下面將數據庫從 SAMPLE 鄰接到 DUMMYDB 時所搜集的每個文件中的數據庫名。
?
比方,要是您搜查了 3 個文件的內容,就會注重到:
?
CONNECT TO SAMPLE;
?
?
?
將它修正為:
?
CONNECT TO DUMMYDB;
?
?
?
在測試環境中領受這些文件。本例中,完好絕對的表都是在默許的表空間 USERSPACE1 中創立的。因此,它們也應在測試系統上相同的 SMS 表空間中用 storage.out 直達儲的相同設置(包括 PREFETCHSIZE、EXTENTSIZE 等)舉行創立。
?
在 config.out 文件中舉行大批修正。將下列內容:
?
UPDATE DB CFG FOR SAMPLE USING dft_queryopt 5;
?
?
?
修正為
?
UPDATE DB CFG FOR SAMPLE USING dft_queryopt 3;
?
?
?
并保存 config.out 文件。
?
目前,實驗 storage.out、config.out 和 table.ddl,如下:
?
db2 -tvf storage.out > storage_output.out
db2 -tvf config.out > config_output.out
db2 -tvf table.ddl > table.out
?
?
?
反省輸入文件以確保完好絕對呼吁都樂成運轉了。并且遵照消耗環境設置中所體現的用于 SAMPLE DB 的設置來修正 DBHEAP、STMTHEAP、NUM_FREQVALUES、NUM_QUANTILES,使它們實用于 DUMMYDB。同時,反省注冊表變量設置可否盡大約地相同。
?
哄騙 db2stop 和 db2start 終了并啟動該實例。重新為 DUMMYDB 數據庫創立正文表:
?
db2 connect to dummydb;
<install path>\sqllib\misc\db2 -tvf EXPLAIN.DDL
db2 terminate;
?
?
?
目前,對 DUMMYDB 數據庫運轉盤問,在前面臨 SAMPLE 數據庫運轉盤問時所生成的 query.sql 文件中將數據庫名從 SAMPLE 修正為 DUMMYDB。
?
C:\>db2 -tvf query.sql
connect to dummydb
Database Connection Information
Database server = DB2/NT 8.2.1
SQL authorization ID = SKAPOOR
Local database alias = DUMMYDB
set current explain mode explain
DB20000I The SQL command completed
successfully.
select * from org a, staff b where
a.deptnumb=b.dept and b.dept=15
SQL0217W The statement was not executed as only
Explain information requests
are being processed. SQLSTATE=01604
set current explain mode no
DB20000I The SQL command completed successfully.
C:\>db2 terminate
DB20000I The TERMINATE command completed
successfully
?
?
?
來自: 新客網(www.xker.com) 詳文參考:http://www.xker.com/page/e2007/0730/28321.html


版權聲明: 原創作品,承諾轉載,轉載時請務必以超鏈接情勢標明文章 原始情由 、作者信息和本聲明。否則將深究法律責任。

轉載于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1975359.html

總結

以上是生活随笔為你收集整理的哄骗DB2look 重新创立优化器访问筹划(3)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。