wuaji 发表于 2016-11-13 09:22:14

DB2 实用SQL

  1.快速清空表内数据

ALTER TABLE tabname ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE;

  load 支持 restart 和 terminate 等故障控制选项。推荐使用下面这一语句

load from empfile of del replace into tabname
  LIPS:
load操作不会进行日志记录,限制表空间访问,缺少触发器支持 
  2.列出表或视图的结构:

DESCRIBE TABLE <TABNAME>
  3.列出 select 语句结果的结构:

DESCRIBE < SELECT STATEMENT>
  4.列出表或视图的索引结构:

DESCRIBE INDEXES FOR TABLE 表名
  5.用游标来提升load的性能
链接:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0902yuancg/index.html?ca=drs-cn-0223

declare cursor mycur for select * from tab1name;
load from mycur of cursor insert into tab2name;

  LIPS: 
      游标方式之所以能提高数据加载的效率是因为数据不需要以文件的方式保存到磁盘上,而是直接从源数据表到达目标数据表中,这样就可以节省了两次 I/O 过程(导出的数据以文件保存到磁盘的过程和加载数据时从磁盘上读取数据文件的过程),从而大大提高数据处理的效率。
 
  6.查询删表历史记录

list history dropped table all for 数据库名
  7.查询数据库里,存储过程,自定义函数或表名
  以DB2ADMIN模式连接数据库
  查询数据库中所有存储过程名  

db2 select* from syscat.procedures where procschema='模式名'
  查询数据库中所有表名

db2 select* from syscat.functions where funcschema='模式名'
  8.COALESCE函数会依次检查输入的参数,返回第一个不是NULL的参数

d = coalesc(a,b,c)
页: [1]
查看完整版本: DB2 实用SQL