RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

云南昆明网站维护公司

昆明网站建设、网站设计制作、网站运营维护常见知识介绍
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://bdklh.com/article/pheisd.html