bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

oracle如何收縮表,oracle表空間收縮

oracle數據庫表空間占用太大,如何在不刪除表的情況下縮小占用空間

alter table 表名 move和alter table 表名 shrink space都可以用來進行段收縮,降低高水位HWM,

成都創新互聯專注于通化縣企業網站建設,響應式網站開發,購物商城網站建設。通化縣網站建設公司,為通化縣等地區提供建站服務。全流程按需求定制設計,專業設計,全程項目跟蹤,成都創新互聯專業和態度為您提供的服務

也都可以用來消除行鏈接(Row Chaining)和行遷移(Row Migration),估計效果不明顯,看你的數據庫用途是干什么的(如果是數據倉庫肯定是不明顯的)。

Oracle 刪除表中記錄 如何釋放表及表空間大小

解決方案

執行

alter?table?jk_test?move

alter?table?jk_test?move?storage(initial?64k)

alter?table?jk_test?deallocate?unused

alter?table?jk_test?shrink?space.

注意:因為alter table jk_test move 是通過消除行遷移,清除空間碎片,刪除空閑空間,實現縮小所占的空間,但會導致此表上的索引無效(因為ROWID變了,無法找到),所以執行 move 就需要重建索引。

找到表對應的索引

select?index_name,table_name,tablespace_name,index_type,status??from?dba_indexes??where?table_owner='SCOTT'

根據status 的值,重建無效的就行了。sql='alter index '||index_name||' rebuild'; 使用存儲過程執行,稍微安慰。

還要注意alter table move過程中會產生鎖,應該避免在業務高峰期操作!

另外說明:truncate table jk_test 會執行的更快,而且其所占的空間也會釋放,應該是truncate 語句執行后是不會進入oracle回收站(recylebin)的緣故。如果drop 一個表加上purge 也不會進回收站(在此里面的數據可以通過flashback找回)。

不管是delete還是truncate 相應數據文件的大小并不會改變,如果想改變數據文件所占空間大小可執行如下語句:

alter?database?datafile?'filename'?resize?8g

重定義數據文件的大小(不能小于該數據文件已用空間的大小)。

另補充一些PURGE知識

Purge操作:

1). Purge tablespace tablespace_name : 用于清空表空間的Recycle Bin

2). Purge tablespace tablespace_name user user_name: 清空指定表空間的Recycle Bin中指定用戶的對象

3). Purge recyclebin: 刪除當前用戶的Recycle Bin中的對象。

4). Purge dba_recyclebin: 刪除所有用戶的Recycle Bin中的對象,該命令要sysdba權限

5). Drop table table_name purge:??刪除對象并且不放在Recycle Bin中,即永久的刪除,不能用Flashback恢復。

6). Purge index recycle_bin_object_name: 當想釋放Recycle bin的空間,又想能恢復表時,可以通過釋放該對象的index所占用的空間來緩解空間壓力。 因為索引是可以重建的。

二、如果某些表占用了數據文件的最后一些塊,則需要先將該表導出或移動到其他的表空間中,然后刪除表,再進行收縮。不過如果是移動到其他的表空間,需要重建其索引。

1、

SQL?alter?table?t_obj?move?tablespace?t_tbs1;???---移動表到其它表空間

也可以直接使用exp和imp來進行

2、

SQLalter?owner.index_name?rebuild;?????--重建索引

3、刪除原來的表空間

oracle清理數據后,如何縮小表空間,減小表空間文件大小?

很大可能是原來表是壓縮過的,再導進去就沒有壓縮了,要重新壓縮下

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 dual;

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.

oracle表空間太大,有哪些優化辦法?

給您提供建議如下:

(1)如果表空間的數據沒存滿,可以考慮執行表空間收縮操作。

(2)如果表空間的數據存滿了,可以考慮建多個表空間文件。

(3)從業務的角度考慮,是否可以考慮將部分數據進行剝離,存放在歷史庫。

(4)從業務角度進行分析,該表空間中最大的幾張表中的數據都是必須、有用的嗎?是否可以將部分無用數據備份后執行清理操作。

(5)如果是undo表空間,可以執行undo表空間收縮操作。

(6)如果是temp表空間,可以將原表空間文件drop掉后重建表空間文件。

oracle 如何收縮表

刪除數據不能縮小表空間,只是可再利用的多了.

要實際縮小,讓操作系統可以利用,需要先把表move tablespace

也可以在原來的tablespace上move一遍,再縮小tablespace就可以了.

例如:

alter table your_table move tablespace yourtablespace;

本文名稱:oracle如何收縮表,oracle表空間收縮
分享URL:http://vcdvsql.cn/article48/hecsep.html

成都網站建設公司_創新互聯,為您提供做網站虛擬主機關鍵詞優化網站內鏈域名注冊網站維護

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營