当前位置:首页 » 文件管理 » oracle表空间压缩空间

oracle表空间压缩空间

发布时间: 2022-09-15 11:06:15

Ⅰ oracle如何缩小表空间

删除数据不能缩小表空间,只是可再利用的多了.
要实际缩小,让操作系统可以利用,需要先把表move tablespace
也可以在原来的tablespace上move一遍,再缩小tablespace就可以了.
例如:
alter table your_table move tablespace yourtablespace;

Ⅱ oracle清理数据后,如何缩小表空间,减小表空间文件大小

修改表空间的扩展策略。减小增长比例。
或者表空间的初始值设大点。

Ⅲ 怎么样减少表空间大小 oracle 11

缩小表空间大小注意如下几点:
1、查清该表空间下的数据文件个数,使用量;
2、为了保证数据库的性能,表空间的使用量不要超过75%;
3、修改数据文件语法:ALTER DATABASE DATAFILE data_file_name RESIZE nnnnM;

Ⅳ oracle11g怎么建立压缩

在数据量变的很大的情况下,可以考虑表压缩,减少磁盘的存储,减少buffer cache的消耗,加快查询的速度,压缩需要在数据加载和dml的时候消耗一些cpu.表压缩对于应用是透明的。

你可以在表空间,表或分区级别指定压缩,如果在表空间级别指定压缩,那么这个表空间中的所有表默认都是压缩的。

压缩会发生在数据插入,更新或批量加载到表时。有几种类型的压缩。基本的,oltp的,dss的,归档的。他们的cpu消耗见文档。

当使用基本压缩,数据仓库压缩,或归档压缩的时候,压缩仅仅是在批量加载到一个表的时候发生。当你使用了oltp压缩,压缩发生在数据插入,更新,批量加载。

如果你使用了alter table命令让表启用压缩,那么对于已存在的数据是不受影响的,只有在启用压缩后的插入,或更新会受影响。也可以使用ALTER TABLE…NOCOMPRESS将一个表设置成非压缩,对于已经的压缩的表是没有影响的,压缩的数据还是压缩的,只是新插入的数据是不被压缩。

创建一个oltp压缩类型的表
CREATE TABLE orders … COMPRESS FOR OLTP;

如果你不指定压缩的类型,那么默认的情况下是基本压缩类型。下面的2个语句是等价的。
CREATE TABLE sales_history … COMPRESS BASIC;

CREATE TABLE sales_history … COMPRESS;

下面的表是一个数据仓库压缩类型的表,对于经常查询,并且没有dml的表适用。
CREATE TABLE sales_history … COMPRESS FOR QUERY;

创建一个归档压缩类型的表
CREATE TABLE sales_history … COMPRESS FOR ARCHIVE;

表可以包含压缩和非压缩的分区,并且不同的分区的压缩的类型可以是不同的,如果在分区上指定的压缩的类型与表上指定的压缩的类型不同,那么分区上的优先。

查看表是否是压缩的,及分区是否是压缩的。
SQL> SELECT table_name, compression, compress_for FROM user_tables;

SELECT table_name, partition_name, compression,compress_for
FROM user_tab_partitions;

查看表中的行是什么压缩类型
SELECT DECODE(DBMS_COMPRESSION.GET_COMPRESSION_TYPE(
ownname => ‘HR’,
tabname => ‘EMPLOYEES’,
row_id => ‘AAAVEIAAGAAAABTAAD’),
1, ‘No Compression’,
2, ‘Basic or OLTP Compression’,
4, ‘Hybrid Columnar Compression for Query High’,
8, ‘Hybrid Columnar Compression for Query Low’,
16, ‘Hybrid Columnar Compression for Archive High’,
32, ‘Hybrid Columnar Compression for Archive Low’,
‘Unknown Compression Type’) compression_type
FROM DUAL;

修改压缩的级别

如果表是分区表,使用在线重定义可以修改表的压缩级别。如果表是分分区表,那么可以使用alter table ..move.. compress for语句修改表的压缩级别,这个语句会阻塞dml操作。

对于压缩表的限制:
1基本压缩,你不能为添加的列指定默认的值。删除列是不被支持的。
2oltp压缩,如果要添加一个带默认值的列,那么需要指定not null,可以删除列,但是数据只是在内部做了一个不被使用的标记而已。

3在线段收缩是不被支持的。

4上面的压缩的方式不适合于lobs类型,他们有自己的压缩方式。

5基本压缩类型的表的pct_free参数自动的设置成0.

在上面的描述中可以看到对于基本类型的压缩,没有使用直接路径插入的行及更新的行是不会被压缩的。对于我们的oltp系统基本是没有用处的,只测试下oltp的压缩方式,这种方式对于没有使用直接路径插入的行及被更新的行都会压缩。

SQL> select count(*) from xyu2;

COUNT(*)

22096384

SQL> set serveroutput on
SQL> exec show_space(‘BAIXYU2’,’T’,’AUTO’);
Total Blocks……………………….334336
Total Bytes………………………..2738880512
Unused Blocks………………………1916
Unused Bytes……………………….15695872
Last Used Ext FileId………………..4
Last Used Ext BlockId……………….671872
Last Used Block…………………….6276

CREATE TABLE xyu3 COMPRESS FOR OLTP as select * from xyu2;

SQL> exec show_space(‘BAIXYU3’,’T’,’AUTO’);
Total Blocks……………………….107520
Total Bytes………………………..880803840
Unused Blocks………………………112
Unused Bytes……………………….917504
Last Used Ext FileId………………..4
Last Used Ext BlockId……………….116224
Last Used Block…………………….912

看到使用的块由33w下降到10w。压缩效果还是不错,但是是否使用还要结果上面的限制来根据实际情况评估。

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

alter table 表名 move和alter table 表名 shrink space都可以用来进行段收缩,降低高水位HWM,
也都可以用来消除行链接(Row Chaining)和行迁移(Row Migration),估计效果不明显,看你的数据库用途是干什么的(如果是数据仓库肯定是不明显的)。

Ⅵ oracle 压缩表空间有什么作用

主要是节省空间,不过查询的时候貌似更消耗cpu资源,对历史数据比较适合。

Ⅶ oracle表空间创建的太大了…怎么把表空间缩小,又不丢失数据 当初计划错误,在500GB的D盘

你可以先备份表空间,backup tablespace,然后resize,做任何改变之前先备份,避免酿成大错。

热点内容
安卓游戏机在哪里下载 发布:2024-10-10 21:23:48 浏览:461
网上买了服务器怎么在电脑连接失败怎么办 发布:2024-10-10 21:18:35 浏览:962
安卓息屏壁纸在哪个文件夹 发布:2024-10-10 21:11:58 浏览:407
eer数据库 发布:2024-10-10 21:06:08 浏览:709
ftp匿名用户上传 发布:2024-10-10 21:06:06 浏览:754
凯越原始密码多少 发布:2024-10-10 21:06:04 浏览:193
捏脆泥解压 发布:2024-10-10 20:56:25 浏览:705
开浏览器显示脚本错误信息 发布:2024-10-10 20:48:14 浏览:11
wii安卓模拟器怎么用 发布:2024-10-10 20:47:35 浏览:501
制度宣传视频脚本 发布:2024-10-10 20:34:05 浏览:576