通常在数据库上线之前,我们都会对数据库做周密的规划,无论在测试阶段还是上线之初,也难免由于需求的更改会对数据中的表做一些更改。而某些alter table语句则会导致该表处于reorg-pending状态。下面做一些总结:

alter table <tablename> alter <colname> set data type <new data type>
下面的表格,在reorg recommaded列注明了那些更改需要reorg:

1.    SET INLINE LENGTH <integer>
更改之后,需要对表做reorg以使更改生效。

2.    SET NOT NULL
更改之后,表将处于reorg pending状态。由于还需要对表中的数据做相应的检查,所以必须reorg之后才能后续访问该表。

3.    DROP NOT NULL
更改之后,表将处于reorg pending状态

4.    DROP COLUMN
如果DROP COLUMN表会处于reorg pending状态。在INSRT, UPDATE, DELETE以及使用索引扫描之前必须对表做REORG

5.    APPEND OFF
由于更改该属性会导致DB2对于表空间中空闲空间的估计不准确,从而影响INSERT的新能,属于此时表会处于reorg pending状态

6.    VALUE COMPRESSION <ACTIVATE/DEACTIVATE>
推荐对表做reorg否则有可能会影响UPDATE语句的性能。

总结:
如果ALTER TABLE语句影响到数据行中的数据格式,那么需要做REORG操作。同时,在reorg之前最多能发出三次同类型的ALTER TABLE命令(SQLSTATE 57016)。如果同时对表做了多次需要REORG TABLE的ALTER TABLE操作,那么只需要REORG TABLE一次。比如,在两次ALTER TABLE语句中DROP掉一个表的两列,那么此时只需要对表做一次REORG就可以了。

下面的命令,不受是否成功执行过REORG-commend操作的影响。

* ALTER TABLE之后,如果不触发任何数据一致性检查(Data Validation),否则以下命令也是运行不了的。
          o ADD CHECK CONSTRAINT
          o ADD REFERENTIAL CONSTRAINT
          o ADD UNIQUE CONSTRAINT
          o ALTER COLUMN SET NOT NULL
    * DROP TABLE
    * RENAME TABLE
    * REORG TABLE
    * TRUNCATE TABLE
    * Table scan access of table data

db2 reorg pending的更多相关文章

  1. db2 reorg runstats rebind具体操作

    db2 reorg runstats rebind具体操作 #reorg table db2 -x "select 'reorg table '||rtrim(tabschema)||'.' ...

  2. db2 reorg详解

    reorgchk,检查table index 是否需要重组.reorg 重组,重新放置数据位置.runstats 统计信息,可以优化查询器 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作, ...

  3. db2 reorg到底需要多少表空间(转)

    脱机reorg需要一定的空间,这个空间与目标所在的数据表空间.索引表空间.以及临时表空间均有关,各空间需求的大小与表和索引所占用的数据页和索引页相关. (1)对表执行reorg操作如:db2 reor ...

  4. db2 reorg table failed处理

    概要: 当对一个表的结构进行改变后,需要reorg表,重新组织其目录统计信息,为数据库的访问计划提供信息,以便高效执行对其的操作. 对表作reorg操作,发生错误,通过db2 "? sql0 ...

  5. db2 reorg(转)

    DB2 reorg RUNSTATS: db2 connect to rmdb11 user rmadmin using rmadmin 对所有用户表执行runstats(reorgchk加updat ...

  6. DB2 Check Pending Script

    转载 http://www.zinox.com/archives/144 Thanks to Max Petrenko of DB2 Toronto Lab for sharing a very us ...

  7. DB2日常维护——REORG TABLE命令优化数据库性能

    一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常.安全.高效运行,防止一些错误重复发生. 由于DB2使用CBO作为数据库的优化器,数据库对象的状 ...

  8. DB2 runstats和reorg操作

    [db2inst1@xifenfei ~]$ db2 connect to xff      Database Connection Information    Database server    ...

  9. DB2日常维护——REORG TABLE命令优化数据库性能(转)

    [转]DB2日常维护——REORG TABLE命令优化数据库性能 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常.安全.高效运行,防止一些错误 ...

随机推荐

  1. js实现选择及复制粘贴

    最近项目有个点击复制到粘贴板的需求,在这里做一个简单的例子分享给大家,没考虑兼容性,需要兼容的大家去查找下文档 //html<p id="element">测试测试&l ...

  2. GOF设计模式之单例模式

    定义 单例模式(Singleton Pattern)的定义如下:Ensure a class only has one instance, and provide a global point of ...

  3. Android蓝牙开发

    Android蓝牙开发 近期做蓝牙小车,须要Android端来控制小车的运动.以此文记录开发过程. 使用HC-06无线蓝牙串口透传模块.对于其它的蓝牙设备本文相同适用. 蓝牙开发的流程: 获取本地蓝牙 ...

  4. 为什么用strlcpy取代strncpy

    为什么用strlcpy取代strncpy 标签: C, C语言, strlcpy, strncpy 标题: 为什么用strlcpy取代strncpy作者: Demon链接: http://demon. ...

  5. CXF 调用方式——动态创建客户端(调用稳定版本号为2.7.18)

    今天用动态创建客户端的方式调用webservice,报了这样一个错: 2017-01-05 20:51:46,029 DEBUG main org.apache.cxf.common.logging. ...

  6. 浅谈ThreadPool 线程池(引用)

    出自:http://www.cnblogs.com/xugang/archive/2010/04/20/1716042.html 浅谈ThreadPool 线程池 相关概念: 线程池可以看做容纳线程的 ...

  7. 无法删除尚未附加的实体-linq中使用反射删除记录出现错误,应该如何解决。

    db.airports.Attach(data); db.airports.DeleteOnSubmit(data); db.SubmitChanges();

  8. Android studio 使用心得(六)—android studio 如何加载.so文件

    之前一直没怎么注意,以为.so文件android为像eclipse一样直接加载,但是直到昨天我在android studio上调试公司项目推送消息的时候,才发现,.so文件原来没有加载成功. 可能之前 ...

  9. C语言之文件操作08——总结

    C程序的文件操作共涵盖7个例题,包括格式打印,文件读取,条件查找,矩阵的文件操作,数据格式输入及调用计算等内容. 文件操作使得程序有更强的拓展性,使其能够单独保存数据.这为程序的调试和优化打下了坚实的 ...

  10. 转 OAuth 2.0授权协议详解

    http://www.jb51.net/article/54948.htm 作者:阮一峰 字体:[增加 减小] 类型:转载 时间:2014-09-10我要评论 这篇文章主要介绍了OAuth 2.0授权 ...