DB2必须了解的常用命令及技巧(转)

1.db2里面的字符串连接可用"||"这个进行连接

2.如何快速删除大批量的数据表(test为数据库表)

最常用也是最多人用的语句:delete from test,但这种做法,效率比较低,花费时间太长,因为在删除数据时,要记数据库日志。

import from /dev/null of del replace into test//先清空,再导入数据(由于导入的文件为空,故相当于清空表数据),这种删除的速度较快

ALTER TABLE test activate NOT LOGGED initially WITH EMPTY TABLE ;删除表中的数据,不记日志,这种处理最快

3.导入、导出数据,支持的文件有ixf,del文件

db2 "export to fileName.del of del select * from tableName" //db2中把表中的数据导入到文件

db2 "import from fileName.del of del insert into tableName " //db2中把文件中的数据导入到表

4.DB2中检查表是否已存在

select * from "SYSIBM"."SYSTABLES" where lower(name) ='afa_maintransdtl'

5.处理db2锁表问题:

db2 “connect to afa”

db2 “get snapshot for locks on 实例名”

db2 “terminate”

然后查看相关信息,找到被锁定的表,执行以下语句:

db2 “force application(application handle) 注:application handle对应的是一个整数

6.在服务器上创建存储过程时:

应为存储过程指定特定的换行符,然后执行下面的语句:

db2 -td@ -vf fileName.sql (其中@为存储过程中指定的换行符)

7. 查看索引是否起作用

runstats on table afa.yj_jywtk with distribution and detailed indexes all;

8.截取数据库快照:

db2 "connect to 实例名"

db2 "update monitor switches using lock ON sort ON bufferpool ON uow ON table ON statement ON"

db2 "get snapshot for all on 实例名"

9. 查看存储过程

select procname,text from sysibm.sysprocedures;

10.list tables 查看数据库表

11.查找字符在字串中的位置

locate('y','xyz')

查找'y'在'xyz'中的位置。

12. 计算两个日期的相差天数

days(date('2007-03-01'))-days(date('2007-02-28'))

days 返回的是从 0001-01-01 开始计算的天数

13. 为一个用户访问另一个实例创建表映射

create alias tableName for 实例名. tableName

14.如何查看表结构

describe table tableName

or

describe select * from table_name

15.如何重新启动数据库?

restart database database_name

16.如何激活数据库?

activate database database_name

17.如何停止数据库?

deactivate database database_name

18.如何重命名表?

rename table_old to table_new

19.如何定义序列?

create sequence orderseq start with 1 increment by 1 no maxvalue no cycle cache24

20.如何查看一个表的索引

describe indexes for table tableName show detail

posted @ 2011-12-27 20:51  Fskjb  阅读(6300)  评论(0编辑  收藏  举报
年年行好运