oracle怎么压缩表,oracle分区表压缩方法

oracle数据库表空间占用太大,如何在不删除表的情况下缩小占用空间

alter table 表名 move和alter table 表名 shrink space都可以用来进行段收缩,降低高水位HWM,

成都创新互联是一家集网站建设,西安企业网站建设,西安品牌网站建设,网站定制,西安网站建设报价,网络营销,网络优化,西安网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

也都可以用来消除行链接(Row Chaining)和行迁移(Row Migration),估计效果不明显,看你的数据库用途是干什么的(如果是数据仓库肯定是不明显的)。

压缩oracle数据文件

Oracle

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

添加时间

:2007-4-22

使用表压缩来节省空间并提高查询性能

很多决策支持系统通常都涉及到存储于几个特大表中的大量数据。随着这些系统的发展,对磁盘空间

的需求也在快速增长。在当今的环境下,存储着数百

TB

(太字节)的数据仓库已经变得越来越普遍。

为了帮助处理磁盘容量问题,

Oracle9i

2

版中引入了表压缩特性,

它可以极大地减少数据库表所

需要的磁盘空间数量,并在某些情况下提高查询性能。

在本文中,我将向你说明表压缩是如何工作的,以及在构建和管理数据库时如何配置表空间。我还将

基于一些示例测试结构讨论一些性能问题,以帮助你了解使用表压缩预计能获得多大好处。

表压缩是如何工作的

Orcle9i

2

版中,表压缩特性通过删除在数据库表中发现的重复数据值来节省空间。压缩是在数

据库的数据块级别上进行的。当确定一个表要被压缩后,数据库便在每一个数据库数据块中保留空间,以

便储存在该数据块中的多个位置上出现的数据的单一拷贝。这一被保留的空间被称作符号表(

symbol

table

。被标识为要进行压缩的数据只存储在该符号表中,而不是在数据库行本身内。当在一个数据库行

中出现被标识为要压缩的数据时,该行在该符号表中存储一个指向相关数据的指针,而不是数据本身。节

约空间是通过删除表中数据值的冗余拷贝而实现的。

对于用户或应用程序开发人员来说,表压缩的效果是透明的。无论表是否被压缩,开发人员访问表的

方式都是相同的,

所以当你决定压缩一个表时,

不需要修改

SQL

查询。

表压缩的设置通常由数据库管理人

员或设计人员进行配置,几乎不需要开发人员或用户参与。

如何创建一个压缩的表

要创建一个压缩的表,可在

CREATE TABLE

语句中使用

COMPRESS

关键字。

COMPRESS

关键字

指示

Oracle

数据库尽可能以压缩的格式存储该表中的行。

下面是

CREATE TABLE COMPRESS

语句的一

个实例:

CREATE

TABLE

SALES_HISTORY_COMP

(

PART_ID

VARCHAR2(50)

NOT

NULL,

STORE_ID

VARCHAR2(50) NOT NULL,

SALE_DATE

DATE NOT NULL,

QUANTITY

NUMBER(10,2) NOT NULL

)

COMPRESS

;

或者,你可以用

ALTER TABLE

语句来修改已有表的压缩属性,如下所示:

ALTER TABLE SALES_HISTORY_COMP COMPRESS;

为了确定是否已经利用

COMPRESS

对一个表进行了定义,可查询

USER_TABLES

数据字典视图并

查看

COMPRESSION

列,如下面的例子所示:

SELECT TABLE_NAME, COMPRESSION FROM USER_TABLES;

TABLE_NAME

COMPRESSION

------------------

-----------

SALES_HISTORY

DISABLED

SALES_HISTORY_COMP

ENABLED

Create table me(shengao int32,tizhong

int ,zhangxiang verchar2(60)) compress;

Select table_name, compression from user_tables;

Select tablespace_name,def_tab_compression from user_tablespaces;

也可以在表空间级别上定义

COMPRESS

属性,

既可以在生成时利用

CREATE TABLESPACE

来定义,

也可以稍后时间利用

ALTER TABLESPACE

来定义。与其他存储参数类似,

COMPRESS

属性也具有一些

继承特性。当在一个表空间中创建一个表时,它从该表空间继承

COMPRESS

属性。为了确定是否已经利

COMPRESS

对一个表空间进行了定义,可查询

USER_TABLESPACES

数据字典视图并查看

DEF_TAB_COMPRESSION

列,如下面的例子所示:

SELECT

TABLESPACE_NAME,

DEF_TAB_COMPRESSION

FROM

DBA_TABLESPACES;

TABLESPACE_NAME

DEF_TAB_COMPRESSION

---------------

-------------------

DATA_TS_01

DISABLED

INDEX_TS_01

DISABLED

正如你所预计的那样,你可以在一个表空间直接压缩或解压缩一个表,而不用考虑表空间级别上的

COMPRESS

属性

怎样压缩Oracle数据文件

如果属于一个单独的表空间不是system等,可以把表空间删除,或删除所有对象后resize数据文件

如何用exp导出oracle数据库并压缩

1. 它是一个可执行的文件 存放目录/ORACLE_HOME/bin

exp导出工具将数据库中数据备份压缩成一个二进制系统文件. 它有三种模式:

a. 用户模式:导出用户所有对象以及对象中的数据;

b. 表模式: 导出用户所有表或者指定的表;

c. 整个数据库: 导出数据库中所有对象。

2. 导出工具exp交互式命令行方式的使用的例子

$exp test/test123@appd

Enter array fetch buffer size: 4096 回车

Export file: expdat.dmp m.dmp 生成导出的文件名

(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U 3

Export table data (yes/no): yes 回车wQeLin

Compress extents (yes/no): yes 回车

orcale 压缩表空间

有2种方法:

1.将你22G的表空间的DBF数据文件缩小,这样表空间就自然变小了

2. 将这个22G的表空间中得文件移到别的表空间里,然后删除表空间重新建立,最后再讲移出的表移回来,这样也能缩小表空间

Oracle 11g 压缩表无法增加删除字段

alter table tableName move nocompress;

ok

直接alter table tableName move nocompress后能增加列,但无法增加带default值的列

设置为 move nocompress后即可,

原因暂未研究,备查


分享文章:oracle怎么压缩表,oracle分区表压缩方法
浏览路径:http://ybzwz.com/article/pheisd.html