Oracle中压缩数据节省空间和提高速度
2007-05-11 12:21:26 来源:WEB开发网压缩一个已有的未压缩表
如果你有一个已有的未压缩表,那么你可以利用ALTER... MOVE语句对其进行压缩。例如,可以利用以下方法对一个名为SALES_HISTORY_TEMP的未压缩表进行压缩: ALTER TABLE SALES_HISTORY_TEMP
MOVE COMPRESS;
你也可以将ALTER TABLE ...MOVE语句用于解压缩一个表,如下例所示: ALTER TABLE SALES_HISTORY_TEMP
MOVE NOCOMPRESS;
请注意,ALTER TABLE ...MOVE操作会获得一个对该表操作的EXCLUSIVE锁,它可以在该语句执行过程中禁止对该表进行任何DML操作。你可以利用Oracle9i数据库的在线表重定义特性来避免这一可能出现的问题。
压缩一个物化视图
你可以使用用于压缩表的类似方式来压缩物化视图。下面的命令生成一个压缩的物化视图: CREATE MATERIALIZED VIEW MV_SALES_COMP
COMPRESS
AS SELECT P.PART_NAME, H.STORE_ID, H.SALE_DATE, H.QUANTITY
FROM SALES_HISTORY H, PARTS P
WHERE P.PART_ID = H.PART_ID;
基于多个表的联接生成的物化视图通常很适于压缩,因为它们通常拥有大量的重复数据项。你可以使用ALTER MATERIALIZED VIEW命令来改变一个物化视图的压缩属性。下面的命令显示了如何压缩一个已有的未压缩的物化视图。
ALTER MATERIALIZED VIEW MV_SALES COMPRESS;
当你使用此命令时,请注意通常是在下一次刷新该物化视图时才会进行实际的压缩。
压缩一个已分区的表
在对已分区的表应用压缩时,可以有很多种选择。你可以在表级别上应用压缩,也可以在分区级别上应用压缩。例如,代码清单 1中的CREATE TABLE语句创建一个具有4个分区的表。 由于是在表级别指定了COMPRESS,所以对全部4个分区都进行压缩。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接