oracle壓縮表空間
❶ oracle 壓縮表空間有什麼作用
主要是節省空間,不過查詢的時候貌似更消耗cpu資源,對歷史數據比較適合。
❷ 怎麼樣減少表空間大小 oracle 11
縮小表空間大小注意如下幾點:
1、查清該表空間下的數據文件個數,使用量;
2、為了保證資料庫的性能,表空間的使用量不要超過75%;
3、修改數據文件語法:ALTER DATABASE DATAFILE data_file_name RESIZE nnnnM;
❸ oracle如何縮小表空間
刪除數據不能縮小表空間,只是可再利用的多了.
要實際縮小,讓操作系統可以利用,需要先把表move tablespace
也可以在原來的tablespace上move一遍,再縮小tablespace就可以了.
例如:
alter table your_table move tablespace yourtablespace;
❹ oracle資料庫表空間佔用太大,如何在不刪除表的情況下縮小佔用空間
alter table 表名 move和alter table 表名 shrink space都可以用來進行段收縮,降低高水位HWM,
也都可以用來消除行鏈接(Row Chaining)和行遷移(Row Migration),估計效果不明顯,看你的資料庫用途是干什麼的(如果是數據倉庫肯定是不明顯的)。
❺ oracle表空間太大,有哪些優化辦法
給您提供建議如下:
(1)如果表空間的數據沒存滿,可以考慮執行表空間收縮操作。
(2)如果表空間的數據存滿了,可以考慮建多個表空間文件。
(3)從業務的角度考慮,是否可以考慮將部分數據進行剝離,存放在歷史庫。
(4)從業務角度進行分析,該表空間中最大的幾張表中的數據都是必須、有用的嗎?是否可以將部分無用數據備份後執行清理操作。
(5)如果是undo表空間,可以執行undo表空間收縮操作。
(6)如果是temp表空間,可以將原表空間文件drop掉後重建表空間文件。
❻ oracle truncate table aud$後怎麼壓縮system表空間
oracle truncate table aud$後怎麼壓縮system表空間
:你的系統表空間已經滿了,且無法擴展。需要擴展系統表空間。 alter tabespace add datafile 'd:\xxxx\system02.dbf' size 1024M reuse autoextend on next 10m maxsize 20480M
❼ 壓縮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能將表空間改小嗎
首先磁碟不足,要現整理表空間(nalyze table t1 compute statistics;分析表,ALTER TABLE T1 SHRINK SPACE; --啟動空間重組整理碎片 這個是回收高水位)這樣你的表空間的存儲會比較整齊,然後從新設置大小(alter database datafile '/xxx.dbf' resize 100M;)但是不能小於當前塊使用的數據塊大小。使用這個之前必須保證你的資料庫屬於一直狀態(也就是設置一下檢查點否則會報錯。alter system checkpoint或者shutdown immediate 在startup ;保證資料庫和諧)。最好還是重建表空間比較好。
❾ oracle表空間創建的太大了…怎麼把表空間縮小,又不丟失數據 當初計劃錯誤,在500GB的D盤
你可以先備份表空間,backup tablespace,然後resize,做任何改變之前先備份,避免釀成大錯。