WEB开发网
开发学院数据库Oracle Oracle中压缩数据节省空间和提高速度 阅读

Oracle中压缩数据节省空间和提高速度

 2007-05-11 12:21:26 来源:WEB开发网   
核心提示: 你还可以使用CREATE TABLE ... AS SELECT语句一次生成一个压缩表,并将数据插入至其中,Oracle中压缩数据节省空间和提高速度(4), 这里有一个例子:CREATE TABLE SALES_HISTORY_COMPCOMPRESSAS SELECT * FROM SA

你还可以使用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语句可能会导致磁盘碎片,且所浪费的空间甚至会多于使用压缩所能节省的空间。

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle 压缩 数据

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