DB2中的数据移动-装入
2008-05-15 14:58:45 来源:WEB开发网例十八:生成统计数据
使用STATISTICS选项可以在装入的过程中生成统计数据,这些统计数据可以供优化器确定最有效的执行SQL语句的方式。
可以对表和索引产生不同详细程度的统计数据:
① 对表和索引产生最详细的统计数据:
LOAD FROM D:STAFF.TXT OF DEL REPLACE INTO STAFF1 STATISTICS YES WITH DISTRIBUTION AND DETAILED INDEXES ALL
② 对表和索引都产生简略的统计:
LOAD FROM D:STAFF.TXT OF DEL REPLACE INTO STAFF1 STATISTICS YES AND INDEXES ALL
其它组合可以参考DB2文档。
注意:STATISTICS选项只能和REPLACE兼容,与INSERT选项不兼容。
另外,通过STATISTICS选项做完统计,我们看不到任何直接的结果,如果想查看其结果,需要到系统表中自己查询。
例十九:解除检查挂起状态
1. 连接到SAMPLE数据库上:
Connect to sample
2. 创建一个结构与staff表相同的表:
CREATE TABLE STAFF1 LIKE STAFF
3. 给该表添加一个检查约束:
alter table staff1 add constraint chk check(dept<100)
4. 到D盘上打开STAFF.TXT文件,把最后一行数据的第三列改为150,这样该条数据就不满足第3步加上的检查约
束条件了,然后用Load命令从文件中装入数据到staff1表中:
LOAD FROM D:STAFF.TXT OF DEL INSERT INTO STAFF1
5. 此时运行查询命令:
Select * from staff1
会得到错误信息:
SQL0668N 由于表 "USER.STAFF1" 上的原因代码 "1",所以不允许操作。
SQLSTATE=57016
原因是装入时有数据违反了检查约束,造成表处于检查挂起状态。
6. 解除表的检查挂起状态,使用:
set integrity for staff1 check immediate unchecked
再次运行查询命令:
Select * from staff1
发现表可以正常使用了,其中的违反检查规则的数据也存在。
更多精彩
赞助商链接