REORG TABLE 语句压缩与指定的表相关联的数据。
调用
此语句可以在使用 DB2 CLI 函数的应用程序中使用,也可以通过 CLP 发出。
语法
>>-REORG TABLE--table-name--+------------+---------------------><
'-int1--int2-'描述
REORG TABLE table-name
标识重组操作的表。名称必须标识现有的表。
int1
需要恢复的字节的可选最小百分比。
int2
需要为将要执行的表压缩恢复的最小字节数。
规则
可选的值 int1 和 int2 必须一起使用,或全都不用。
可选的值 int1 必须是非负数。
可选的值 int1 必须介于 0 与 100 之间。
注意事项
DB2 Everyplace 可以以内部方式调用表重组。
第一个可选参数是表必须包含的不可用的字节的百分比(即百分之十(10)意味“至少百分之十的空间不可用”。)第二个可选参数是表必须包含的不可用的字节数(即 1000 将意味“至少 1000 个字节必须是不可用的空间”。)必须符合两个条件,才可以进行表的实际重组。
如果没有指定参数,DB2 Everyplace 对这此选项使用缺省值。缺省百分比是 30 且缺省字节是 6144。因此,“reorg table t1”与“reorg table t1 30 6144”相同。
如果重组方式设置为已启用,则 DB2 Everyplace 将自动重组表。如果在 DELETE 或 UPDATE 上启用了重组,则在执行语句之后,会对目标表执行“reorg table table_name 50 30270”。如果在 DROP TABLE 上启用了重组,则在删除表处理结束时执行“reorg table DB2eSYSTABLES 30 10240”(对于 DB2eSYSCOLUMNS 和 DB2eSYSRELS 也是如此)。
在 C/C++ 程序中,通过使用具有属性 SQL_ATTR_REORG_MODE 的 CLI/ODBC 函数 SQLSetStmtAttr 设置重组方式。在 JAVA 程序中,通过 DB2eStatement 接口 enableReorg 方法设置重组方式。缺省值是启用重组。
重组表时,通过物理上回收删除和更新创建的不可用空间来压缩包含表的数据文件。然后将表的索引更新为指向行的新物理位置。
可以重组“DB2 Everyplace 系统目录”基本表。
在执行 REORG TABLE 语句时,数据库中不应发生任何其它活动。
示例
使用缺省值压缩 VNNURSE 表。
REORG TABLE VNNURSE执行REORG可以考虑分为表上有索引和没有索引两种情况:
a.如表名为DB2INST1.STAFF,索引名为DB2INST1.ISTAFF
db2 "reorg table db2inst1.staff index db2inst1.istaff use tempspace1"b.建议REORG时使用USE参数指定数据重排时使用的临时表空间。
否则,REORG工作将会在表所在表空间中原地执行.如果表上有多个索引,index参数值请使用最为重要的索引名
c.表上没有索引:
db2 "reorg table db2inst1.staff use tempspace1"
db2 "reorg table sysibm.systables use tempspace1"转载于:https://my.oschina.net/goopand/blog/401991