學習 DB2LOOK 命令(轉)
第一步,欲善其工,必先利其器
熟練的掌握資料庫提供的各個工具,是做好DBA的基礎。
在DB2所提供的眾多工具中,DB2LOOK 絕對是我們最常用的工具之一。隨著DB2 V9.5最新版本的推出,很多工具也增加了新的功能。
在學習之時,請務必保證自己手頭有“四大至寶”:
•DB2 任意版本
無論是 UDB 還是 Express-C,無論是 Windows 還是 Linux版,必須有一個(廢話)
•DB2 資訊中心
此為學習DB2的“聖經”~以下是各個版本的URL
DB2 V8 資訊中心
DB2 V9 資訊中心
DB2 V9.5 資訊中心
•IBM DeveloperWorks
擁有大量的技術文件和教程,十分全面,而且最新:
http://www-128.ibm.com/developerworks
English 不太好的可以看中文的
http://www-128.ibm.com/developerworks/cn/
• ITPUB
這個至寶就法力超高,眾仙雲集~
以上“四大至寶”請務必隨時“在手”,如果能夠做到“在心”,那你就進入高手行列,估計相當於 ITPUB 眾牛人 myfriend2010, diablo2, bpmfhu, wangzhonnew, qqone, askgyliu, macrozeng, unixnewbie 等的 60% 功力,一般的小問題就可以自行解決了。
第二步,學習基礎知識
DB2LOOK 語法
>>-db2look-- -d--DBname--+-----+--+--------------+-------------->
'- -e-' '- -u--Creator-'
>--+-------------+--+-------------------------------------+----->
'- -z--schema-' '-+----------------+--+-------------+-'
| .-------. | '- -tw--Tname-'
| V | |
'- -t----Tname-+-'
>--+------+--+------+--+----------------+--+-----+--+------+---->
'- -ct-' '- -dp-' | .-------. | '- -h-' '- -ap-'
| V | |
'- -v----Vname-+-'
>--+------------+--+-----+--+-----------------------+----------->
'- -o--Fname-' '- -a-' '- -m--+-----+--+-----+-'
'- -c-' '- -r-'
>--+-----+--+-----+--+------+--+-----+--+-----------------+----->
'- -l-' '- -x-' '- -xd-' '- -f-' '- -td--delimiter-'
>--+----------+--+----------------------------+--+-------+------>
'- -noview-' '- -i--userid-- -w--password-' '- -wlm-'
>--+------------------+--+---------+--+-----------+------------->
+- -wrapper--Wname-+ '- -nofed-' '- -fedonly-'
'- -server--Sname--'
>--+---------------------------+-------------------------------><
'- -xs--+-----------------+-'
'- -xdir--dirname-'
重要引數詳解:
-d DBname : 指定 資料庫名
-e : 生成 資料庫物件的 DDL 語句
-l : 生成 使用者定義的 表空間、資料庫分割槽組、Buffer Pools
的 DDL 語句
-u Creator : 指定 建立者ID 的物件
-a : 指定不限制 建立者
-z schema : 指定 Schema
-t Tname1 Tname2 ... TnameN : 指定 特定的 表
-v Vname1 Vname2 ... VnameN : 指定 特定的 View
-tw Tname : 指定 表名字的匹配格式,日誌表'LOG%'
-o OutputFile : 指定輸出結果檔名
-m : 生成 複製 統計資訊表的 UPDATE 語句。
-x : 生成 使用者許可權 相關DDL
-xd : 生成 系統許可權 相關DDL
-xs :XML模式儲存庫(XSR)物件(XML模式、DTD和外部實體)
-xdir dirname :XSR物件的放置位置
第三步,實踐出真知
引用名人的一句話“紙上來得終覺淺,絕知此事要躬行!” --- 出自 ITPUB 元老 owlstudio
“君子動口,更要動手” --- 自 俊哥兒張
囧TL
要想成為真正的高手,豐富的理論知識是不夠的,還必須深入實踐,精益求精~
下面是 db2look 命令的一些應用例項,各個例項關注的重點不同:
例項1. 生成資料庫物件DDL的順序
這裡我們關注的 DDL 的生成順序,命令如下:
db2look -d SAMPLE -a -e -c
詳解:
結果無CREATE DATABASE 及相關語句,按照下列順序依次生成DDL:
以下是我們常見的資料庫DDL 生成順序:
CONNECT TO SAMPE
開始
XSR 物件的 DDL 語句
模式(SCHEMA)
序列(SEQUENCE)
表(TABLE)
主鍵(FOREIGN)
索引(INDEX)
外來鍵(FOREIGN KEY)
其它約束(CHECK)
使用者定義的函式的 DDL 語句
FUNCTION
檢視(VIEW)
別名(ALIAS)
儲存過程(PROCEDURE)
觸發器(TRIGGER)
最後,以
COMMIT WORK;
CONNECT RESET;
TERMINATE;
結束
例項2. 檢視特定表
如果認為下面的語句可以生成表 EMPLOYEE 的DDL,
db2look -d SAMPLE -t " EMPLOYEE "
那就大錯特錯了!
這裡我們要注意的是,並沒有生成DDL語句,
要想生成DDL語句,必須使用如下命令:
db2look -d SAMPLE -t " EMPLOYEE " -a –e –c
但是,這裡邊有大量的垃圾資訊,注意過濾。
例項3. 生成 XSR 物件的 DDL 語句
db2look -d SAMPLE -a -e -xs -xdir e: -c -o e:db2look.sql
生成的DDL如下:
------------------------------------------------
-- XSR 物件的 DDL 語句 "DB2INST1"."CUSTOMER"
------------------------------------------------
REGISTER XMLSCHEMA "" FROM e:doc_562949953421312 AS "DB2INST1"."CUSTOMER";
COMPLETE XMLSCHEMA "DB2INST1"."CUSTOMER" WITH e:md_281474976710656;
您可以到據此在 e:doc_562949953421312 和 e:md_281474976710656 中找到您需要的更詳細的資訊。
例項4. 生成統計資訊表的UPDATE語句
這個例項主要是學習 –m 選項,在模擬方式下執行 db2look 實用程式。
此選項將生成包含 SQL UPDATE 語句的指令碼,這些 SQL UPDATE 語句捕獲所有統計資訊,可以對另一個資料庫執行此指令碼以便複製初始的那一個。
注意:當指定了 -m 選項時,將忽略 -p、-g 和 -s 選項
我們什麼時候用的到該選項呢?如果測試資料庫用於測試效能或除錯效能問題,則對兩個資料庫生成的訪問方案應該完全相同。最佳化器根據統計資訊、配置引數、登錄檔變數和環境變數來生成訪問方案。如果兩個系統間的這些設定完全相同,則訪問方案很可能是相同的。
如果將完全相同的資料裝入到兩個資料庫中,並且對它們兩個執行相同的 RUNSTATS 選項,則統計資訊也應該完全相同。
但是,如果資料庫包含不同資料,或者如果測試資料庫中只使用資料的子集,則統計資訊可能會有顯著差別。在這種情況下,可使用 db2look 來從生產資料庫收集統計資訊並將它們放在測試資料庫中。透過對可更新表的 SYSSTAT 集合建立 UPDATE 語句並對所有表建立 RUNSTATS 命令來執行此操作。
用於建立統計資訊語句的選項為 -m。返回至 SAMPLE/SAMPLE2 示例,從 SAMPLE1 收集統計資訊並將其新增至 SAMPLE2:
db2look -d sample1 -m –o statsupdate.sql
修改完指令碼 statsupdate.sql 後就可以應用到 sample2 上了
db2 –tvf statsupdate.sql
熟練的掌握資料庫提供的各個工具,是做好DBA的基礎。
在DB2所提供的眾多工具中,DB2LOOK 絕對是我們最常用的工具之一。隨著DB2 V9.5最新版本的推出,很多工具也增加了新的功能。
在學習之時,請務必保證自己手頭有“四大至寶”:
•DB2 任意版本
無論是 UDB 還是 Express-C,無論是 Windows 還是 Linux版,必須有一個(廢話)
•DB2 資訊中心
此為學習DB2的“聖經”~以下是各個版本的URL
DB2 V8 資訊中心
DB2 V9 資訊中心
DB2 V9.5 資訊中心
•IBM DeveloperWorks
擁有大量的技術文件和教程,十分全面,而且最新:
http://www-128.ibm.com/developerworks
English 不太好的可以看中文的
http://www-128.ibm.com/developerworks/cn/
• ITPUB
這個至寶就法力超高,眾仙雲集~
以上“四大至寶”請務必隨時“在手”,如果能夠做到“在心”,那你就進入高手行列,估計相當於 ITPUB 眾牛人 myfriend2010, diablo2, bpmfhu, wangzhonnew, qqone, askgyliu, macrozeng, unixnewbie 等的 60% 功力,一般的小問題就可以自行解決了。
第二步,學習基礎知識
DB2LOOK 語法
>>-db2look-- -d--DBname--+-----+--+--------------+-------------->
'- -e-' '- -u--Creator-'
>--+-------------+--+-------------------------------------+----->
'- -z--schema-' '-+----------------+--+-------------+-'
| .-------. | '- -tw--Tname-'
| V | |
'- -t----Tname-+-'
>--+------+--+------+--+----------------+--+-----+--+------+---->
'- -ct-' '- -dp-' | .-------. | '- -h-' '- -ap-'
| V | |
'- -v----Vname-+-'
>--+------------+--+-----+--+-----------------------+----------->
'- -o--Fname-' '- -a-' '- -m--+-----+--+-----+-'
'- -c-' '- -r-'
>--+-----+--+-----+--+------+--+-----+--+-----------------+----->
'- -l-' '- -x-' '- -xd-' '- -f-' '- -td--delimiter-'
>--+----------+--+----------------------------+--+-------+------>
'- -noview-' '- -i--userid-- -w--password-' '- -wlm-'
>--+------------------+--+---------+--+-----------+------------->
+- -wrapper--Wname-+ '- -nofed-' '- -fedonly-'
'- -server--Sname--'
>--+---------------------------+-------------------------------><
'- -xs--+-----------------+-'
'- -xdir--dirname-'
重要引數詳解:
-d DBname : 指定 資料庫名
-e : 生成 資料庫物件的 DDL 語句
-l : 生成 使用者定義的 表空間、資料庫分割槽組、Buffer Pools
的 DDL 語句
-u Creator : 指定 建立者ID 的物件
-a : 指定不限制 建立者
-z schema : 指定 Schema
-t Tname1 Tname2 ... TnameN : 指定 特定的 表
-v Vname1 Vname2 ... VnameN : 指定 特定的 View
-tw Tname : 指定 表名字的匹配格式,日誌表'LOG%'
-o OutputFile : 指定輸出結果檔名
-m : 生成 複製 統計資訊表的 UPDATE 語句。
-x : 生成 使用者許可權 相關DDL
-xd : 生成 系統許可權 相關DDL
-xs :XML模式儲存庫(XSR)物件(XML模式、DTD和外部實體)
-xdir dirname :XSR物件的放置位置
第三步,實踐出真知
引用名人的一句話“紙上來得終覺淺,絕知此事要躬行!” --- 出自 ITPUB 元老 owlstudio
“君子動口,更要動手” --- 自 俊哥兒張
囧TL
要想成為真正的高手,豐富的理論知識是不夠的,還必須深入實踐,精益求精~
下面是 db2look 命令的一些應用例項,各個例項關注的重點不同:
例項1. 生成資料庫物件DDL的順序
這裡我們關注的 DDL 的生成順序,命令如下:
db2look -d SAMPLE -a -e -c
詳解:
結果無CREATE DATABASE 及相關語句,按照下列順序依次生成DDL:
以下是我們常見的資料庫DDL 生成順序:
CONNECT TO SAMPE
開始
XSR 物件的 DDL 語句
模式(SCHEMA)
序列(SEQUENCE)
表(TABLE)
主鍵(FOREIGN)
索引(INDEX)
外來鍵(FOREIGN KEY)
其它約束(CHECK)
使用者定義的函式的 DDL 語句
FUNCTION
檢視(VIEW)
別名(ALIAS)
儲存過程(PROCEDURE)
觸發器(TRIGGER)
最後,以
COMMIT WORK;
CONNECT RESET;
TERMINATE;
結束
例項2. 檢視特定表
如果認為下面的語句可以生成表 EMPLOYEE 的DDL,
db2look -d SAMPLE -t " EMPLOYEE "
那就大錯特錯了!
這裡我們要注意的是,並沒有生成DDL語句,
要想生成DDL語句,必須使用如下命令:
db2look -d SAMPLE -t " EMPLOYEE " -a –e –c
但是,這裡邊有大量的垃圾資訊,注意過濾。
例項3. 生成 XSR 物件的 DDL 語句
db2look -d SAMPLE -a -e -xs -xdir e: -c -o e:db2look.sql
生成的DDL如下:
------------------------------------------------
-- XSR 物件的 DDL 語句 "DB2INST1"."CUSTOMER"
------------------------------------------------
REGISTER XMLSCHEMA "" FROM e:doc_562949953421312 AS "DB2INST1"."CUSTOMER";
COMPLETE XMLSCHEMA "DB2INST1"."CUSTOMER" WITH e:md_281474976710656;
您可以到據此在 e:doc_562949953421312 和 e:md_281474976710656 中找到您需要的更詳細的資訊。
例項4. 生成統計資訊表的UPDATE語句
這個例項主要是學習 –m 選項,在模擬方式下執行 db2look 實用程式。
此選項將生成包含 SQL UPDATE 語句的指令碼,這些 SQL UPDATE 語句捕獲所有統計資訊,可以對另一個資料庫執行此指令碼以便複製初始的那一個。
注意:當指定了 -m 選項時,將忽略 -p、-g 和 -s 選項
我們什麼時候用的到該選項呢?如果測試資料庫用於測試效能或除錯效能問題,則對兩個資料庫生成的訪問方案應該完全相同。最佳化器根據統計資訊、配置引數、登錄檔變數和環境變數來生成訪問方案。如果兩個系統間的這些設定完全相同,則訪問方案很可能是相同的。
如果將完全相同的資料裝入到兩個資料庫中,並且對它們兩個執行相同的 RUNSTATS 選項,則統計資訊也應該完全相同。
但是,如果資料庫包含不同資料,或者如果測試資料庫中只使用資料的子集,則統計資訊可能會有顯著差別。在這種情況下,可使用 db2look 來從生產資料庫收集統計資訊並將它們放在測試資料庫中。透過對可更新表的 SYSSTAT 集合建立 UPDATE 語句並對所有表建立 RUNSTATS 命令來執行此操作。
用於建立統計資訊語句的選項為 -m。返回至 SAMPLE/SAMPLE2 示例,從 SAMPLE1 收集統計資訊並將其新增至 SAMPLE2:
db2look -d sample1 -m –o statsupdate.sql
修改完指令碼 statsupdate.sql 後就可以應用到 sample2 上了
db2 –tvf statsupdate.sql
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12801008/viewspace-607662/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DB2LOOK 命令DB2
- 【AIX 命令學習】mkvg 命令AI
- asmcmd命令學習ASM
- nohup命令學習
- AIX 命令學習AI
- ip命令學習
- 【AIX 命令學習】migratepv 命令AI
- Shell學習【test命令】
- dos命令的學習
- Linux 命令學習Linux
- virsh命令學習(一)
- 【AIX 命令學習】errpt 命令示例!AI
- db2look相關操作DB2
- 傳統網路配置命令與ip高階路由命令學習示例(轉)路由
- 學習一個 Linux 命令:shutdown 命令Linux
- 【AIX 命令學習】lsvg 命令引數使用!AISVG
- tail命令學習例項AI
- lsof命令學習筆記筆記
- Redis 學習筆記命令Redis筆記
- Git命令學習筆記Git筆記
- TCL學習之info命令
- linux命令學習——psLinux
- Linux命令學習(一)Linux
- 容器Docker學習系列五~命令學習history,save,importDockerImport
- 容器Docker學習系列五~命令學習history,save, importDockerImport
- linux學習筆記---一些命令學習Linux筆記
- 【AIX 命令學習】errpt 命令引數使用!AI
- Git 學習之命令詳解Git
- git學習常用命令Git
- Shells命令列學習筆記命令列筆記
- linux基礎命令學習Linux
- python學習命令總結Python
- Linux命令學習---目錄Linux
- Linux命令學習(重定向)Linux
- MySQL EXPLAIN 命令詳解學習MySqlAI
- 每天學習linux命令(1)Linux
- Linux 下vi 命令學習Linux
- PacVim:一個學習 vim 命令的命令列遊戲命令列遊戲