Oracle中压缩数据节省空间和提高速度
2007-05-11 12:21:26 来源:WEB开发网你还可以使用CREATE TABLE ... AS SELECT语句一次生成一个压缩表,并将数据插入至其中。 这里有一个例子: CREATE TABLE SALES_HISTORY_COMP
COMPRESS
AS SELECT * FROM SALES_HISTORY;
如果你没有使用正确的加载或INSERT方法,那么即使使用COMPRESS对表格进行了定义,该表中的数据也将仍然保持未压缩状态。 例如,如果你使用惯用路径SQL*Loader或正则INSERT语句,那么数据仍然是未压缩的。
什么时候使用表压缩
Oracle数据库选择用来压缩表数据或不压缩表数据的方式已暗中牵涉到了最适合于表压缩的应用程序。如上所述,一个表中已被使用COMPRESS定义的数据,只有在使用直接路径模式被加载或利用添加(append)或并行模式被插入时,才会得到压缩。通过正则插入语句插入的数据将保持未压缩状态。
在在线事务处理(OLTP)系统中,通常是使用正则插入模式来插入数据的。因此,使用表压缩通常不会使这些表格获得太大的好处。 表压缩对于那些只加载一次但多次读取的只读表格具有最佳效果。例如,数据仓库应用程序中所用的表格特别适合于进行表压缩。
此外,在一个已压缩表中更新数据可能要求数据行为非压缩的,这样就达不到进行压缩的目的。因此,那些需要经常进行更新操作的表不适于进行表压缩。
最后,让我们来看一下行删除对表压缩应用的影响。当你删除一个压缩的表中的一行时,数据库将释放该行在数据库数据块中所占据的空间。 这一自由空间可以由未来插入的数据重新使用。但是,由于以惯用模式插入的行不能被压缩,所以它不太可能适合放在一个被压缩的行所释放的空间。大量的相继的DELETE与INSERT语句可能会导致磁盘碎片,且所浪费的空间甚至会多于使用压缩所能节省的空间。
- ››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修改表的两种方式
更多精彩
赞助商链接