WEB开发网
开发学院数据库DB2 DB2数据库移植常见问题全面解析 阅读

DB2数据库移植常见问题全面解析

 2009-01-19 16:39:38 来源:WEB开发网   
核心提示: 解决办法:DB2 中不支持 BULK 方式,其替代方式是定义相应的数组,DB2数据库移植常见问题全面解析(6),然后以循环方式每次从游标结果集中 fetch 一条记录到数组元素中,DB2中如何用 SQL 语句取出满足条件的结果集的前N条记录?解决办法:使用 select * from wh

解决办法: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 命令更新查询统计信息。

提示:必须在一个事务中执行关闭日志和数据导入才会不记日志,当前事务结束后日志开关会自动重新打开。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:DB 数据库 移植

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接