热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(转)【俊哥儿张】DB2:学习DB2LOOK命令

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;
献丑了

推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • NotSupportedException无法将类型“System.DateTime”强制转换为类型“System.Object”
    本文介绍了在使用LINQ to Entities时出现的NotSupportedException异常,该异常是由于无法将类型“System.DateTime”强制转换为类型“System.Object”所导致的。同时还介绍了相关的错误信息和解决方法。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • express工程中的json调用方法
    本文介绍了在express工程中如何调用json数据,包括建立app.js文件、创建数据接口以及获取全部数据和typeid为1的数据的方法。 ... [详细]
author-avatar
mobiledu2502916503
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有