`
loveseaside
  • 浏览: 151301 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

db2中会导致表处于reorg pending状态的alter语句

    博客分类:
  • db2
阅读更多

会导致表处于reorg pending状态的alter table语句

通常在数据库上线之前,我们都会对数据库做周密的规划,无论在测试阶段还是上线之初,也难免由于需求的更改会对数据中的表做一些更改。而某些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表空间不足及处理

    在DB2数据库中,表空间不足可能会导致各种问题,如查询性能下降、数据存储不当等。因此,解决DB2表空间不足问题非常重要。 解决DB2表空间不足问题的方法有多种,下面我们将介绍其中的一些方法: 1.增加表空间大小...

    完整的REORG表的过程

    db2 中 REORG 表的完整过程及应用场景 REORG(重组)是 db2 中一种重要的表维护操作,它可以帮助解决死锁或锁超时的问题,但是在进行 REORG 操作之前,需要了解完整的 REORG 表过程。下面我们将详细介绍 REORG 表的...

    DB2与ORACLE常用语句对照

    - 更新数据:`UPDATE`语句在两个系统中基本一致,但Oracle允许在单个`UPDATE`语句中更新多个表,DB2通常限制为单表更新。 - 删除数据:`DELETE FROM`在两者中也是相同的,但Oracle的`TRUNCATE TABLE`用于快速删除...

    db2 修改表数据类型

    接下来,使用`ALTER TABLE`语句来修改新表中某一列的数据类型。在这个例子中,我们修改的是`SELL_FEE`列的数据类型为`DECIMAL(5,0)`。 ```sql ALTER TABLE FA_DAILY_REPORT_ITEM810 ALTER COLUMN SELL_FEE SET DATA...

    使用db2 utility CHECK DATA 中的问题

    如果一个表(T2)的外键引用了另一个表(T1)的主键,而T2中有T1中不存在的主键值,那么 `EXCEPTIONS` 设置为1将允许1次这样的异常,超过这个次数,`CHECK DATA` 操作就会停止,并记录错误,将状态设为 `CHECK-...

    DB2如何评估索引碎片是否是缓慢的RUNSTATS根

    DB2在处理表空间中的索引时,可能会遇到分散存储的索引页面,而这些页面不再物理上连续。这导致DB2在进行索引扫描时,需要频繁地进行磁盘I/O操作来获取分散的索引页面,从而增加了扫描时间,使得RUNSTATS运行缓慢。 ...

    DB2性能安全文件

    过多的表会导致性能下降,特别是当查询涉及到跨表操作时。可以通过以下措施来降低表的数量: 1. **合并相似表**:将具有相似数据结构的表合并。 2. **清理旧表**:定期删除不再使用的表。 #### 二十八、如何快速...

    linux下DB2常用命令

    db2 reorg table ydd db2 runstats on table ydd with distribution and indexes all 整理表的数据和索引。 13. 导出表数据 db2 export to c:\dftz.txt of del select * from dftz db2 export to c:\dftz.ixf of ...

    db2错误代码查看.

    - **描述**:当未明确指定列所在的表时,DB2会尝试自动匹配一个表中的列。 - **处理方法**:确保所有列名前都加上表名以避免歧义。 **4. +09801568 - 动态SQL语句用分号结束** - **描述**:动态SQL语句必须以...

    DB2手册pdf

    ### DB2专有名词解释 #### INSTANCE (实例) 在DB2环境中,**实例**是指运行DB2数据库管理系统软件的一个特定进程集合。...一个操作系统上可以安装多个DB2实例,每...使用`DB2 REORG`命令可以重新组织表,以改善查询性能。...

    DB2 基础---DB2进程

    DB2\_REORG用于执行数据库重组任务,优化表和索引的物理存储。 三、DB2内存结构 进程与内存管理密切相关。DB2使用私有地址空间(PAS)和共享地址空间(SAS)来组织内存。PAS包含每个SQL进程的私有内存,用于存储...

    DB2性能调优资料,解决SQL执行慢的问题

    首先,我们要了解REORG 和 REORGCHK以及RUNSTATS这三种DB2命令,它们在数据库维护中起着至关重要的作用。 1. **REORG**: 这个命令用于重新组织数据库对象,如表、索引等,以优化物理存储结构。当数据发生大量插入、...

    Itrenzheng IBM DB2 000-701认证题库

    **题干**:成功执行表空间恢复命令后,表空间会处于以下哪种状态? - A. Restore pending - B. Recovery pending - C. Restore in progress - D. Rollforward pending **答案**:D. Rollforward pending **解析**...

    DB2 数据库常用命令

    在DB2中,`RUNSTATS`是一个重要的实用程序,用于收集表和索引的统计信息,这些信息对优化查询计划和提高查询性能至关重要。当数据库的大小或数据分布发生变化时,运行`RUNSTATS`可以确保数据库管理系统(DBMS)拥有...

    DB2表相关操作的文档二三事儿

    在Windows 10环境下,可以通过DB2命令行处理器执行一系列SQL语句来完成表空间的创建。 ##### 20. 创建数据库 ```bash db2 "create by zfdb using codeset gbk territory CN collate using identity" ``` 创建一个名...

    在DB2数据库里面如何更新执行计划

    在DB2数据库中,更新执行计划是一个关键的操作,因为它直接影响SQL语句的执行效率。DB2采用基于成本的优化器(CBO)来确定SQL语句的最佳执行路径。CBO根据多个因素,如CPU成本、I/O成本、系统目录中的统计信息以及...

Global site tag (gtag.js) - Google Analytics