DB2数据库移植常见问题全面解析
2009-01-19 16:39:38 来源:WEB开发网解决办法:DB2 中不支持 BULK 方式,其替代方式是定义相应的数组,然后以循环方式每次从游标结果集中 fetch 一条记录到数组元素中。
DB2中如何用 SQL 语句取出满足条件的结果集的前N条记录?
解决办法:使用 select * from where fetch first row only
Oracle中有 trunacte 表的功能,速度非常快,它只是把表标志设为空,并不发生删除数据的 IO 操作,DB2 中如何做类似操作?
解决办法:可以先 drop 表,再重建该表
原因分析:Oracle 中 trunacte 表的速度之所以快,是因为它不记日志,只是直接把表的结构信息删除了,并不发生删除数据的 IO 操作。DB2 中 drop 表,也不会引起数据 IO 和日志记录,从而达到相同的效果。但前提是你预先有创建表的结构。否则不要随意 drop 表。
Oracle 有 truncate,DB2 中建议使用 drop,然后再 create 表,这样好还是 alter 表好?
解决办法:Oracle 的 truncate 是直接把表的数据清空,但不记日志,所以速度很快。DB2 中 drop 表也避免了大量记录记入日志的问题,再重建表就达到了快速清空表的目的。但 alter 是用于修改表结构的,和表的数据操作没有关系。
在一次性导入大量数据到表中时,会因为写日志而影响性能,如何提高该操作的性能,在导入数据后,需要做更新统计操作,如何做?
解决办法:一次性导入大量数据时为了提高性能,可以使用 alter table activate not logged initially 在该事务中关闭该表的日志选项,然后执行数据导入,在该事务结束后,该表日志开关自动打开。在导入大量数据后,为了提高查询性能,再运行 runstats on table 命令更新查询统计信息。
提示:必须在一个事务中执行关闭日志和数据导入才会不记日志,当前事务结束后日志开关会自动重新打开。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››数据库对象——存储过程
- ››db2诊断系列之---定位锁等待问题
- ››数据库设计词汇对照表
- ››db2 命令选项解释
- ››数据库大型应用解决方案总结
- ››移植Windows自宿主WCF服务到Linux/Mono2.8
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
更多精彩
赞助商链接