❶ oracle 如何缩小和重建temp表空间的数据文件(ora
1.不行,数据文件不能单独删除,要与表空间一起删除。也可以手工合并自由范围: alter tablespace temp coalesce; 否则就重建表空间: 1.startup --启动数据库 2.create temporary tablespace TEMP2 TEMPFILE '/home2/oracle/oradata/sysmon/temp02.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED; --创建中转临时表空间 3.alter database default temporary tablespace temp2; --改变缺省临时表空间 为刚刚创建的新临时表空间temp2 4.drop tablespace temp including contents and datafiles;--删除原来临时表空间 5.create temporary tablespace TEMP TEMPFILE '/home2/oracle/oradata/sysmon/temp01.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED; --重新创建临时表空间 6.alter database default temporary tablespace temp; --重置缺省临时表空间为新建的temp表空间 7.drop tablespace temp2 including contents and datafiles;--删除中转用临时表空间 8.alter user roll temporary tablespace temp; --重新指定用户表空间为重建的临时表空间
❷ 使oracle表空间数据文件的大小为“不限制”,怎样修改
Oracle 10g表空间自动扩容修改方法:x0dx0a方法一:管理界面emx0dx0a命令: x0dx0aALTER TABLESPACE "TBS_NAME" ADD DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ex_data' SIZE 10240M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED ; x0dx0ax0dx0a注:该命令修改原来的表空间。x0dx0a数据文件名:ex_data x0dx0aOracle目录:C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL x0dx0a表空间名:TBS_NAME x0dx0a文件大小 :10240M(不要重用现有文件) x0dx0a数据文件满后自动扩展 (AUTOEXTEND) :增量50M x0dx0a最大文件大小: 无限制 x0dx0a管理界面em: 用em扩容,找到相应的表空间,然后“添加数据文件” ,填写以上内容。 x0dx0a方法二:x0dx0aALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ex_data' AUTOEXTEND ON NEXT 50M x0dx0ax0dx0a注:该方法是不修改原来表空间的前提下进行的。
❸ oracle如何缩小表空间
删除数据不能缩小表空间,只是可再利用的多了.
要实际缩小,让操作系统可以利州慧用,需要先把表move tablespace
也可以在原来罩余的tablespace上move一遍,再缩小tablespace就可以了.
例如册闷答:
alter table your_table move tablespace yourtablespace;
❹ 压缩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 datafile
1、当表空间里没有数据时:
alter database datafile ‘/data1/oracle/data_201708.dbf’ resize 1G;
alter database tempfile ‘/u02/oracle/oradata/orcl/temp01.dbf’ resize 1G;
2、查询有哪些表空间及相应数据文件
col name format a50
set linesize 200
select a.name,b.name from v$tablespace a ,v$datafile b where a.TS#=b.TS#;
或者
col file_name format a50
select TABLESPACE_NAME,FILE_NAME from dba_data_files order by TABLESPACE_NAME;
❻ oracle清理数据后,如何缩小表空间,减小表空间文件大小
修改表空间的扩展策略。减小增长比例。
或者表空间的初始值设大点。
❼ oracle收缩表空间会影响到数据吗
不会的,你是扩展表空间或者扩展数据文件,不是收缩或者下线。
如果扩展表空间数据会丢失,那么空间不足了怎么办?不都是在扩展表空间么。
不过原来的数据文件不能动。
❽ oracle数据库表空间占用太大,如何在不删除表的情况下缩小占用空间
alter table 表名 move和alter table 表名 shrink space都可以用来进行段收缩,降低高水位HWM,
也都可以用来消除虚蠢拆行链接(Row Chaining)和行迁移(Row Migration),档埋估差枣计效果不明显,看你的数据库用途是干什么的(如果是数据仓库肯定是不明显的)。
❾ oracle怎么收缩数据文
--找出目前TEST表空间最大的block_id
SELECT MAX(block_id)FROM dba_extentsWHERE tablespace_name = 'TEST';
MAX(BLOCK_ID)
-------------
136
--计算目前最大块的段所占用的空间(该数据库的block大小是8192)
show parameter db_block_size ;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 8192
SELECT 136*8192/1024/1024 "MAX(M)" FROM al;
MAX(M)
----------
1.0625
--查看表空间物理文件的名称及大小
set line 200
col file_name for a50
select
tablespace_name, file_id, file_name,round(bytes/(1024*1024),0)
"total_space(M)"from dba_data_fileswhere tablespace_name ='TEST' ;
TABLESPACE_NAME FILE_ID FILE_NAME total_space(M)
------------------------------ ---------- -------------------------------------------------- --------------
TEST 6 /u01/oradata/source/test01.dbf 100
4
--resize表空间
SQL> ALTER DATABASE DATAFILE '/u01/oradata/source/test01.dbf' RESIZE 1M;
ALTER DATABASE DATAFILE '/u01/oradata/source/test01.dbf' RESIZE 1M*ERROR at line 1:
ORA-03214: File Size specified is smaller than minimum required
SQL> ALTER DATABASE DATAFILE '/u01/oradata/source/zfl01.dbf' RESIZE 2M;
Database altered.