❶ 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.