详细讲解有关"DB2"数据库的一些小技巧

  • 来源: 赛迪网 作者: 若水   2008-05-13/22:13
  • 1. 查看本地节点目录

    命令窗口中输入:

     

    DB2 list node directory

    2. 编目一个TCP/IP节点

     

    命令窗口:

     

    db2 catalog tcpip node remote server VCname|port_number> ostype Linux|DYNIX>

    3. 取消节点编目

     

    db2 uncatalog node

     

    4. 查看系统数据库目录

     

    db2 list database directory

     

     

     

    5. 查看本地数据库目录

     

    db2 list database directory on <盘符>

    在本地数据库目录中有而系统数据库目录中没有的数据库不能访问,可以在控制中心中选中<数据库>右键单击选择添加,然后输入需要添加的数据库名称或者点击刷新按钮选择数据库,加入数据库后即可以访问。

     

    6. 编目数据库

     

    db2 catalog database as at node

    7. 取消数据库编目

     

    #p#分页标题#e#db2 uncatalog database

     

    8. 测试远程数据库的连接

     

    db2 connect to user using

    9. 任何用户均可通过设置Current Schema专用寄存器为特定的数据库连接设置默认模式,初始默认值为当前会话用户的权限ID。

     

    set schema =

    可以由用户交互式的使用,也可在应用程序中使用,如果用Dynamicrules Bind选项绑定包,这个语句就没有作用。此语句不在事务控制之下。

     

    10. 代码页的设置

     

    在创建数据库时设置字符集

     

    create database using codeset territory

     

     

     

    27. 查看当前连接到数据库的应用

     

    db2 list application [show detail]

     

    28. 如何确认DB2数据库的一致性

     

    db2dart /DB

     

     

     

    /DB表示检查整个数据库的一致性

     

    29. 测试SQL语句的性能

     

    #p#分页标题#e#db2batch -d -f [-a userid/passwd] [-r ]

     

    -r 选项表示将查询结果输出到一个文件中。

     

    30. 导出某个表的数据

     

    export to

     

     

     

    如:导出用户表

     

    export to c:user.ixf of ixf select * from user

     

     

     

    31. 导入数据

     

    import from

     

     

     

    如:导入用户表。导入时可以直接建立新表。如果有该表存在也可以用INSERT 插入,或者用UPDATE更新

     

    import from c:user.ixf of ixf [Create/Insert into / update] tablename

     

    例:

     

    create database dbtest using codeset IBM-437 territory US

    也可以设置整个数据库的代码页,在win2000/NT/xp中,在我的电脑-->属性-->高级-->环境变量中添加变量DB2CODEPAGE = ,例:DB2CODEPAGE = 437 或 DB2CODEPAGE = 1386。或者在IBM DB2命令窗口输入 db2set DB2CODEPAGE=1386,设置后需要重新启动DB2生效。

     

    11. DB2低版本数据到高版本的迁移

     

    先将低版本数据备份使用恢复功能导入高版本数据库,然后在命令窗口输入 db2 migrate database 。

     

    12. 表名或模式中含有引号时访问表

     

    命令窗口:db2 select * from "tabschema"."tabname"

     

    命令行处理器:db2=> select * from "tabschema"."tabname"

     #p#分页标题#e#

    13. 导出数据库的表结构生成DDL文件

     

    命令窗口:db2look -d -e -c -o

     

    14. 执行脚本文件

     

    命令窗口:db2 -tvf

     

    15. 代码页的转换

     

    16. 获取当前DB2的版本

     

    select * from sysibm.sysversions

    17. DB2表的字段的修改限制?

     

    只能修改VARCHAR2类型的并且只能增加不能减少

     

    alter table alter column set data type varchar(SIZE)

     

     

     

    18. 如何查看表的结构?

     

    describe table or describe select * from .

    19. 如何快速清除一个大表?

     

    ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE

     

    20. 如何查看数据库的存储过程?

     

    SELECT * FROM SYSCAT.PROCEDURES

     

     

     

    21. 如何查看表的约束?

     

    SELECT * FROM SYSCAT.CHECKS WHERE TABNAME =

    22. 如何查看表的引用完整约束?

     

    SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME =

    23. 如何知道BUFFERPOOLS状况?

     

    select * from SYSCAT.BUFFERPOOLS

    24. 如何在命令行下查看修改实例和数据库配置参数?

     

    查看实例配置参数: db2 get dbm cfg

     

    修改实例配置参数: db2 update dbm cfg using 参数名 新值

     

    查看数据库配置参数: db2 get db cfg for #p#分页标题#e#

     

    修改数据库配置参数: db2 update db cfg for using 参数名 新值

     

    25. 如何修改缓冲区?

     

    增加缓冲区: create bufferpool size [pagesize 4096] {[not] EXTENDED STORAGE}

     

    修改缓冲区: alter bufferpool size {[not] EXTENDED STORAGE}

     

    删除缓冲区: drop bufferpool

     

    如果缓冲区大小设置为 -1 表示缓冲池的页面数目由数据库配置参数buffpage决定。

     

    注意: 数据库配置参数buffpage仅对缓冲区大小设置为 -1 的缓冲池起作用。

     

    26. 多个字段时如何不通过使用select子句使用in/not in

     

    select * from tabschema.tabname where (colA, colB, colC) [not] in (values (valueA1, valueB1, valueC1), (valueA2, valueB2, valueC2), ...(valueAn, valueBn, valueCn))


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多