WEB开发网
开发学院数据库DB2 DB2 V9.7 新特性:在线移动表 阅读

DB2 V9.7 新特性:在线移动表

 2009-12-18 00:00:00 来源:WEB开发网   
核心提示: 上面清单中首先使用默认值启动数据移动 INIT 阶段,然后使用 ADMIN_MOVE_TABLE_UTIL 过程修改压缩采样大小为 30720 KB,DB2 V9.7 新特性:在线移动表(8),并删除 COPY_INDEXSCHEMA、COPY_INDEXNAME 设置,然后继续数据移动过程,增

上面清单中首先使用默认值启动数据移动 INIT 阶段,然后使用 ADMIN_MOVE_TABLE_UTIL 过程修改压缩采样大小为 30720 KB,并删除 COPY_INDEXSCHEMA、COPY_INDEXNAME 设置,然后继续数据移动过程。

数据移动例子

使用 DB2 在线表移动功能,我们可以进行:

在线表压缩。

在表重组或者重分布

在线将表空间转换为 LARGE 表空间

将数据 / 索引 /LONG 移动到新的不同的表空间

支持表模式变化,如增加列、删除列、修改列数据类型,增加或修改 MDC 维定义,增加或修改范围分区键、增加或修改表分区键

我们首先创建测试表 EMP_TEST,并创建索引,然后向表中插入 10 万条测试数据。


清单 6. 创建测试表
 CREATE TABLE emp_test ( 
 EMPNO INTEGER NOT NULL, 
 first_name VARCHAR(128) NOT NULL, 
 last_name VARCHAR(128), 
 SALARY DECIMAL, 
 BONUS DECIMAL, 
 COMM DECIMAL, 
 CONSTRAINT EMPNO_pk PRIMARY KEY (EMPNO) 
  ) 
 IN USERSPACE1; 
  
 Create index first_name_idx on emp_test(first_name); 
 Create index last_name_idx on emp_test(last_name); 
  
   
 INSERT INTO emp_test (EMPNO, first_name, last_name,SALARY,BONUS,COMM) 
 WITH TEMP (COUNTER, first_name, last_name,SALARY,BONUS,COMM) AS 
 ( 
 VALUES (0, 
 VARCHAR(MOD(INT(RAND() * 100000), 99999)), 
 VARCHAR(MOD(INT(RAND() * 100000), 99999)), 
 MOD(INT(RAND() * 100000), 99999), 
 MOD(INT(RAND() * 100000), 99999), 
  MOD(INT(RAND() * 100000), 99999) 
 ) 
 UNION ALL 
 SELECT 
 (COUNTER + 1), 
 VARCHAR(MOD(INT(RAND() * 100000), 99999)), 
 VARCHAR(MOD(INT(RAND() * 100000), 99999)), 
 MOD(INT(RAND() * 100000), 99999), 
 MOD(INT(RAND() * 100000), 99999), 
 MOD(INT(RAND() * 100000), 99999) 
 
 FROM 
 TEMP 
 WHERE 
 (COUNTER + 1) < 100000 
 ) 
 SELECT 
 COUNTER, first_name, last_name,SALARY,BONUS,COMM 
 FROM 
 TEMP 
 ; 
 
 runstats on table db2admin.emp_test and indexes all; 

上一页  3 4 5 6 7 8 9 10  下一页

Tags:DB 特性 在线

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