作者:mobiledu2502916503 | 来源:互联网 | 2023-06-06 19:23
http:space.itpub.net7705285viewspace-442023【俊哥儿张】DB2:学习DB2LOOK命令上一篇下一篇2008-09-051
http://space.itpub.net/7705285/viewspace-442023
【俊哥儿张】DB2:学习 DB2LOOK 命令
上一篇 / 下一篇 2008-09-05 15:15:28 / 精华(3) / 个人分类:DB2
查看( 295 ) / 评论( 23 )
学习 DB2LOOK 命令
这两天看奥运兴奋的很,可惜今天是男足对巴西,不想受打击,写篇文章来灌水~
第一步,欲善其工,必先利其器
熟练的掌握数据库提供的各个工具,是做好DBA的基础。
在DB2所提供的众多工具中,DB2LOOK 绝对是我们最常用的工具之一。随着DB2 V9.5最新版本的推出,很多工具也增加了新的功能。
在学习之时,请务必保证自己手头有“四大至宝”:
•DB2 任意版本
无论是 UDB 还是 Express-C,无论是 Windows 还是 Linux版,必须有一个(废话)
•DB2 信息中心
此为学习DB2的“圣经”~以下是各个版本的URL
DB2 V8 信息中心
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp
DB2 V9 信息中心
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp
DB2 V9.5 信息中心
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp
•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--'
>--&#43;---------------------------&#43;-------------------------------><
&#39;- -xs--&#43;-----------------&#43;-&#39;
&#39;- -xdir--dirname-&#39;
重要参数详解&#xff1a;
-d DBname &#xff1a; 指定 数据库名
-e &#xff1a; 生成 数据库对象的 DDL 语句
-l &#xff1a; 生成 用户定义的 表空间、数据库分区组、Buffer Pools
的 DDL 语句
-u Creator &#xff1a; 指定 创建者ID 的对象
-a &#xff1a; 指定不限制 创建者
-z schema &#xff1a; 指定 Schema
-t Tname1 Tname2 ... TnameN &#xff1a; 指定 特定的 表
-v Vname1 Vname2 ... VnameN &#xff1a; 指定 特定的 View
-tw Tname &#xff1a; 指定 表名字的匹配格式&#xff0c;日志表&#39;LOG%&#39;
-o OutputFile &#xff1a; 指定输出结果文件名
-m &#xff1a; 生成 复制 统计信息表的 UPDATE 语句。
-x &#xff1a; 生成 用户权限 相关DDL
-xd &#xff1a; 生成 系统权限 相关DDL
-xs &#xff1a;XML模式存储库&#xff08;XSR&#xff09;对象&#xff08;XML模式、DTD和外部实体&#xff09;
-xdir dirname &#xff1a;XSR对象的放置位置
第三步&#xff0c;实践出真知
引用名人的一句话“纸上来得终觉浅&#xff0c;绝知此事要躬行&#xff01;” --- 出自 ITPUB 元老 owlstudio
“君子动口&#xff0c;更要动手” --- 自 俊哥儿张
囧TL
要想成为真正的高手&#xff0c;丰富的理论知识是不够的&#xff0c;还必须深入实践&#xff0c;精益求精&#xff5e;
下面是 db2look 命令的一些应用实例&#xff0c;各个实例关注的重点不同&#xff1a;
实例1. 生成数据库对象DDL的顺序
这里我们关注的 DDL 的生成顺序&#xff0c;命令如下&#xff1a;
db2look -d SAMPLE -a -e -c
详解&#xff1a;
结果无CREATE DATABASE 及相关语句&#xff0c;按照下列顺序依次生成DDL&#xff1a;
以下是我们常见的数据库DDL 生成顺序&#xff1a;
CONNECT TO SAMPE
开始
XSR 对象的 DDL 语句
模式&#xff08;SCHEMA&#xff09;
序列&#xff08;SEQUENCE&#xff09;
表&#xff08;TABLE&#xff09;
主键&#xff08;FOREIGN&#xff09;
索引&#xff08;INDEX&#xff09;
外键&#xff08;FOREIGN KEY&#xff09;
其它约束&#xff08;CHECK&#xff09;
用户定义的函数的 DDL 语句
FUNCTION
视图&#xff08;VIEW&#xff09;
别名&#xff08;ALIAS&#xff09;
存储过程&#xff08;PROCEDURE&#xff09;
触发器&#xff08;TRIGGER&#xff09;
最后&#xff0c;以
COMMIT WORK;
CONNECT RESET;
TERMINATE;
结束
实例2. 查看特定表
如果认为下面的语句可以生成表 EMPLOYEE 的DDL&#xff0c;
db2look -d SAMPLE -t " EMPLOYEE "
那就大错特错了&#xff01;
这里我们要注意的是&#xff0c;并没有生成DDL语句&#xff0c;
要想生成DDL语句&#xff0c;必须使用如下命令&#xff1a;
db2look -d SAMPLE -t " EMPLOYEE " -a –e –c
但是&#xff0c;这里边有大量的垃圾信息&#xff0c;注意过滤。
实例3. 生成 XSR 对象的 DDL 语句
db2look -d SAMPLE -a -e -xs -xdir e: -c -o e:db2look.sql
生成的DDL如下&#xff1a;
------------------------------------------------
-- XSR 对象的 DDL 语句 "DB2INST1"."CUSTOMER"
------------------------------------------------
REGISTER XMLSCHEMA "http://posample.org" FROM e:doc_562949953421312 AS "DB2INST1"."CUSTOMER";
COMPLETE XMLSCHEMA "DB2INST1"."CUSTOMER" WITH e:md_281474976710656;
您可以到据此在 e:doc_562949953421312 和 e:md_281474976710656 中找到您需要的更详细的信息。
实例4. 生成统计信息表的UPDATE语句
这个实例主要是学习 –m 选项&#xff0c;在模拟方式下运行 db2look 实用程序。
此选项将生成包含 SQL UPDATE 语句的脚本&#xff0c;这些 SQL UPDATE 语句捕获所有统计信息&#xff0c;可以对另一个数据库运行此脚本以便复制初始的那一个。
注意&#xff1a;当指定了 -m 选项时&#xff0c;将忽略 -p、-g 和 -s 选项
我们什么时候用的到该选项呢&#xff1f;如果测试数据库用于测试性能或调试性能问题&#xff0c;则对两个数据库生成的访问方案应该完全相同。优化器根据统计信息、配置参数、注册表变量和环境变量来生成访问方案。如果两个系统间的这些设置完全相同&#xff0c;则访问方案很可能是相同的。
如果将完全相同的数据装入到两个数据库中&#xff0c;并且对它们两个执行相同的 RUNSTATS 选项&#xff0c;则统计信息也应该完全相同。
但是&#xff0c;如果数据库包含不同数据&#xff0c;或者如果测试数据库中只使用数据的子集&#xff0c;则统计信息可能会有显著差别。在这种情况下&#xff0c;可使用 db2look 来从生产数据库收集统计信息并将它们放在测试数据库中。通过对可更新表的 SYSSTAT 集合创建 UPDATE 语句并对所有表创建 RUNSTATS 命令来执行此操作。
用于创建统计信息语句的选项为 -m。返回至 SAMPLE/SAMPLE2 示例&#xff0c;从 SAMPLE1 收集统计信息并将其添加至 SAMPLE2&#xff1a;
db2look -d sample1 -m –o statsupdate.sql
修改完脚本 statsupdate.sql 后就可以应用到 sample2 上了
db2 –tvf statsupdate.sql
小结&#xff1a;
本文意在抛砖引玉&#xff0c;希望能跟大家分享我学习DB2的经验&#xff0c;如有不当之处&#xff0c;请大家拍板砖&#xff5e;
献丑了