最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle?刪除表中記錄如何釋放表及表空間大小(最新整理)

 更新時(shí)間:2026年03月03日 10:26:14   作者:xixi_666  
文章詳細(xì)介紹了如何查看和優(yōu)化Oracle數(shù)據(jù)庫中表的存儲(chǔ)空間,包括查看表和表空間的大小、重建索引、使用TRUNCATE和DROP命令釋放空間以及調(diào)整數(shù)據(jù)文件的大小等方法,感興趣的朋友跟隨小編一起看看吧

查看表占有空間大小排序

select OWNER,
       t.segment_name,
       t.segment_type,
       sum(t.bytes / 1024 / 1024) MB
  from dba_segments t
 where t.owner = 'APPUSER'
   and t.segment_type = 'TABLE'
 group by OWNER, t.segment_name, t.segment_type
 order by MB desc

1.查看一個(gè)表所占的空間大?。?/span>

SELECT bytes/1024/1024 ||'MB' TABLE_SIZE ,u.* FROM USER_SEGMENTS U WHERE U.SEGMENT_NAME='JK_TEST';

2.查看一個(gè)表空間所占的實(shí)際大?。?/span>

SELECT SUM(BYTES) / 1024 / 1024 ||'MB' FROM USER_SEGMENTS U  WHERE TABLESPACE_NAME = 'DATA01';

3.查看一個(gè)表空間對(duì)應(yīng)的數(shù)據(jù)文件:

SELECT * FROM DBA_DATA_FILES D WHERE D.TABLESPACE_NAME = 'DATA01';

4.查看表空間的使用情況:

SELECT A.TABLESPACE_NAME,      
       FILENUM,   
       TOTAL "TOTAL (MB)",  
       F.FREE "FREE (MB)",
       TO_CHAR(ROUND(FREE * 100 / TOTAL, 2), '990.00') "FREE%", 
       TO_CHAR(ROUND((TOTAL - FREE) * 100 / TOTAL, 2), '990.00') "USED%",    
       ROUND(MAXSIZES, 2) "MAX (MB)"
  FROM (SELECT TABLESPACE_NAME,          
               COUNT(FILE_ID) FILENUM,        
               SUM(BYTES / (1024 * 1024)) TOTAL,          
               SUM(MAXBYTES) / 1024 / 1024 MAXSIZES      
          FROM DBA_DATA_FILES       
         GROUP BY TABLESPACE_NAME) A,     
       (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / (1024 * 1024))) FREE     
          FROM DBA_FREE_SPACE      
         GROUP BY TABLESPACE_NAME) F
 WHERE A.TABLESPACE_NAME = F.TABLESPACE_NAME

5.查看數(shù)據(jù)文件的實(shí)際使用情況:

SELECT CEIL(MAX_BLOCK * BLOCK_SIZE / 1024)
  FROM (SELECT MAX(BLOCK_ID) MAX_BLOCK
          FROM DBA_EXTENTS
         WHERE FILE_ID IN (SELECT FILE_ID
                             FROM DBA_DATA_FILES D
                            WHERE D.TABLESPACE_NAME = 'USERS')) M,
       (SELECT VALUE / 1024 BLOCK_SIZE
          FROM V$PARAMETER
         WHERE NAME = 'db_block_size') B

一、創(chuàng)建一個(gè)有十萬條記錄的測(cè)試表jk_test ,查看其所占空間大小3873M
delete jk_test。再次查看大小不會(huì)變,此時(shí)執(zhí)行select * from jk_test會(huì)發(fā)現(xiàn)速度超極慢,查詢結(jié)果卻是空,查看其COST,發(fā)現(xiàn)是10萬多。很難理解吧,其實(shí)是其所占空間沒有釋放的緣故。
執(zhí)行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.
注意:因?yàn)閍lter table jk_test move 是通過消除行遷移,清除空間碎片,刪除空閑空間,實(shí)現(xiàn)縮小所占的空間,但會(huì)導(dǎo)致此表上的索引無效(因?yàn)镽OWID變了,無法找到),所以執(zhí)行 move 就需要重建索引。
找到表對(duì)應(yīng)的索引。
select index_name,table_name,tablespace_name,index_type,status  from dba_indexes  where table_owner='SCOTT' ;
根據(jù)status 的值,重建無效的就行了。
sql='alter index '||index_name||' rebuild'; 使用存儲(chǔ)過程執(zhí)行,稍微安慰。
還要注意alter table move過程中會(huì)產(chǎn)生鎖,應(yīng)該避免在業(yè)務(wù)高峰期操作!
再次查看其所占空間大小,發(fā)現(xiàn)已經(jīng)很小了,再一次執(zhí)行查詢,很快了吧。
另外說明:truncate table jk_test 會(huì)執(zhí)行的更快,而且其所占的空間也會(huì)釋放,我想應(yīng)該是truncate 語句執(zhí)行后是不會(huì)進(jìn)入oracle回收站(recylebin)的緣故。如果drop 一個(gè)表加上purge 也不會(huì)進(jìn)回收站(在此里面的數(shù)據(jù)可以通過flashback找回)。
不管是delete還是truncate 相應(yīng)數(shù)據(jù)文件的大小并不會(huì)改變,如果想改變數(shù)據(jù)文件所占空間大小可執(zhí)行如下語句:alter database datafile 'filename' resize 8g重定義數(shù)據(jù)文件的大小(不能小于該數(shù)據(jù)文件已用空間的大?。?。
另補(bǔ)充一些PURGE知識(shí)
Purge操作:
1). Purge tablespace tablespace_name : 用于清空表空間的Recycle Bin
2). Purge tablespace tablespace_name user user_name: 清空指定表空間的Recycle Bin中指定用戶的對(duì)象
3). Purge recyclebin: 刪除當(dāng)前用戶的Recycle Bin中的對(duì)象
4). Purge dba_recyclebin: 刪除所有用戶的Recycle Bin中的對(duì)象,該命令要sysdba權(quán)限
5). Drop table table_name purge:  刪除對(duì)象并且不放在Recycle Bin中,即永久的刪除,不能用Flashback恢復(fù)。
6). Purge index recycle_bin_object_name: 當(dāng)想釋放Recycle bin的空間,又想能恢復(fù)表時(shí),可以通過釋放該對(duì)象的index所占用的空間來緩解空間壓力。 因?yàn)樗饕强梢灾亟ǖ摹?/span>
二、如果某些表占用了數(shù)據(jù)文件的最后一些塊,則需要先將該表導(dǎo)出或移動(dòng)到其他的表空間中,然后刪除表,再進(jìn)行收縮。不過如果是移動(dòng)到其他的表空間,需要重建其索引。

1)SQL> alter table t_obj move tablespace t_tbs1;   ---移動(dòng)表到其它表空間

也可以直接使用exp和imp來進(jìn)行

2)SQL>alter owner.index_name rebuild;     --重建索引

3)刪除原來的表空間
三:對(duì)表分析之后也可以優(yōu)化(本人沒有試過)

analyze table ysgl_compile_reqsub 
compute statistics for all indexes; 
也要看情況,不是什么情況都可以優(yōu)化,等下次有機(jī)會(huì)再測(cè)試一下。

到此這篇關(guān)于Oracle 刪除表中記錄如何釋放表及表空間大小的文章就介紹到這了,更多相關(guān)Oracle 刪除表中記錄釋放表空間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • oracle中的ID號(hào)實(shí)現(xiàn)自增長(zhǎng)的方法

    oracle中的ID號(hào)實(shí)現(xiàn)自增長(zhǎng)的方法

    這篇文章主要介紹了oracle中的ID號(hào)如何實(shí)現(xiàn)自增長(zhǎng),利用序列產(chǎn)生主鍵值,需要的朋友可以參考下
    2014-05-05
  • 關(guān)于系統(tǒng)重裝后Oracle數(shù)據(jù)庫完全恢復(fù)的解決辦法

    關(guān)于系統(tǒng)重裝后Oracle數(shù)據(jù)庫完全恢復(fù)的解決辦法

    本篇文章是對(duì)系統(tǒng)重裝后Oracle數(shù)據(jù)庫完全恢復(fù)的解決辦法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Oracle的控制文件管理

    Oracle的控制文件管理

    Oracle 的控制文件記錄了當(dāng)前數(shù)據(jù)庫的結(jié)構(gòu)信息,包含數(shù)據(jù)文件及日志文件的信息以及相關(guān)的狀態(tài)、歸檔信息等,本文主要介紹了Oracle的控制文件管理,感興趣的可以了解一下
    2023-12-12
  • Oracle如何獲取指定表名稱批量修改表中的字段類型

    Oracle如何獲取指定表名稱批量修改表中的字段類型

    這篇文章主要給大家介紹了關(guān)于Oracle如何獲取指定表名稱批量修改表中字段類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)使用oracle具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Navicat連接Oracle數(shù)據(jù)庫及用戶與表空間操作方法指南

    Navicat連接Oracle數(shù)據(jù)庫及用戶與表空間操作方法指南

    通過Navicat連接Oracle數(shù)據(jù)庫,能便捷地進(jìn)行用戶、表空間、數(shù)據(jù)表等操作,極大提高了數(shù)據(jù)庫,這篇文章主要介紹了Navicat連接Oracle數(shù)據(jù)庫及用戶與表空間操作方法指南的相關(guān)資料,需要的朋友可以參考下
    2025-11-11
  • Oracle parameter可能值獲取方法

    Oracle parameter可能值獲取方法

    有時(shí)不清楚一些參數(shù)的所有允許設(shè)定的值,比如Oracle中parameter,接下來介紹兩種方法獲取Oracle中parameter的可能值,需要了解的朋友可以參考下
    2012-11-11
  • Oracle?EBS數(shù)據(jù)庫密碼復(fù)雜度設(shè)置圖文教程

    Oracle?EBS數(shù)據(jù)庫密碼復(fù)雜度設(shè)置圖文教程

    選擇安全的密碼并實(shí)施良好的密碼策略是迄今為止防止基于密碼的安全威脅的極為重要的防御措施,下面這篇文章主要給大家介紹了關(guān)于Oracle?EBS數(shù)據(jù)庫密碼復(fù)雜度設(shè)置的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • Oracle占用內(nèi)存過高的問題及解決

    Oracle占用內(nèi)存過高的問題及解決

    這篇文章主要介紹了Oracle占用內(nèi)存過高的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • oracle中讀寫blob字段的問題解析

    oracle中讀寫blob字段的問題解析

    這篇文章以程序?qū)嵗f明通過JDBC操縱Oracle數(shù)據(jù)庫LOB類型字段的幾種情況
    2013-09-09
  • Oracle歸檔日志爆滿問題的處理方法

    Oracle歸檔日志爆滿問題的處理方法

    Oracle歸檔日志(Archivelog)是Oracle數(shù)據(jù)庫的一種特性,它主要用于數(shù)據(jù)恢復(fù)和高可用性的目的,但有什么經(jīng)常會(huì)出現(xiàn)無法連接,手動(dòng)清除歸檔日志后可以恢復(fù)訪問,但是過不了幾天依舊會(huì)爆滿,所以本文給大家介紹了Oracle歸檔日志爆滿問題的處理方法,需要的朋友可以參考下
    2024-10-10

最新評(píng)論

分宜县| 高台县| 托克托县| 奉新县| 依兰县| 城市| 城步| 蒲城县| 临洮县| 朝阳县| 阜平县| 青龙| 吉林市| 营口市| 玉田县| 锦州市| 永康市| 宽城| 安康市| 建始县| 滨海县| 高雄市| 安西县| 泸定县| 长泰县| 英吉沙县| 罗江县| 辽宁省| 中卫市| 景德镇市| 平顺县| 临高县| 新疆| 海淀区| 鹰潭市| 中宁县| 邵武市| 贡嘎县| 广饶县| 张掖市| 金湖县|