Oracle查詢表占用空間大小方式
一、Oracle查詢表空間占用情況
Oracle是一種經(jīng)典的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),對(duì)于表占用空間大小的查詢是數(shù)據(jù)庫(kù)管理中的基本操作。
查詢表空間占用情況可以通過以下代碼實(shí)現(xiàn):
SELECT a.tablespace_name "表空間名", total "表空間大小", free "表空間剩余大小", (total - free) "表占用空間大小", ROUND((total - free) / total * 100, 2) || '%' "已使用空間百分比" FROM (SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total FROM dba_data_files GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) / 1024 / 1024 free FROM dba_free_space GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name ORDER BY (total - free) DESC;
通過以上代碼,可以得到數(shù)據(jù)庫(kù)中所有表空間的大小信息,包括表空間名、表空間大小、表空間剩余空間、表占用空間大小和已使用空間百分比。
二、Oracle查詢表占用的空間
查詢單個(gè)表占用的空間大小可以通過以下代碼實(shí)現(xiàn):
SELECT segment_name "表名", segment_type "對(duì)象類型", sum(bytes) / 1024 / 1024 "占用空間(MB)" FROM dba_extents WHERE segment_name = '表名' GROUP BY segment_name, segment_type;
通過以上代碼,可以得到單個(gè)表的名字、對(duì)象類型和占用空間大小。
三、Oracle查詢表空間使用情況
查詢表空間使用情況可以通過以下代碼實(shí)現(xiàn):
SELECT tablespace_name, file_id, bytes, blocks, maxbytes FROM dba_data_files;
通過以上代碼,可以得到每個(gè)表空間包含的數(shù)據(jù)文件所占用的文件名、字節(jié)數(shù)、塊數(shù)和最大字節(jié)數(shù)。
四、Oracle查詢每張表占用空間
查詢每張表占用空間的大小可以通過以下代碼實(shí)現(xiàn):
SELECT owner, segment_name, segment_type, sum(bytes) / 1024 / 1024 "占用空間(MB)" FROM dba_segments WHERE owner = '表所有者' GROUP BY owner, segment_name, segment_type;
通過以上代碼,可以得到每張表所屬的表所有者、表名、對(duì)象類型和占用空間大小。
五、Oracle表空間大小查詢
表空間大小查詢可以通過以下代碼實(shí)現(xiàn):
SELECT tablespace_name, SUM(bytes) / 1024 / 1024 "占用空間(MB)" FROM dba_segments WHERE segment_type IN ('TABLE', 'INDEX') GROUP BY tablespace_name;
通過以上代碼,可以得到所有表和索引所占用的表空間大小信息。
六、Oracle查表空間大小
查詢單個(gè)表空間的大小可以通過以下代碼實(shí)現(xiàn):
SELECT tablespace_name, SUM(bytes) / 1024 / 1024 "占用空間(MB)" FROM dba_segments WHERE tablespace_name = '表空間名' GROUP BY tablespace_name;
通過以上代碼,可以得到單個(gè)表空間的名字和占用空間大小。
七、Oracle查詢表空間大小
查詢表空間大小可以通過以下代碼實(shí)現(xiàn):
SELECT tablespace_name, sum(bytes) / 1024 / 1024 "占用空間(MB)" FROM dba_data_files GROUP BY tablespace_name;
通過以上代碼,可以得到所有表空間的名字和占用空間大小。
八、查看Oracle各個(gè)表占空間
查看Oracle各個(gè)表占空間大小可以通過以下代碼實(shí)現(xiàn):
SELECT owner, segment_name, segment_type, format_number(bytes / (1024 * 1024), 2) "已用空間(MB)", format_number(maxbytes / (1024 * 1024), 2) "最大空間(MB)" FROM dba_segments WHERE owner = '表所有者' ORDER BY bytes DESC;
通過以上代碼,可以得到每張表所屬的表所有者、表名、對(duì)象類型、已用空間和最大空間信息。
查看segment_type為"LOBSEGMENT"類型,所對(duì)應(yīng)的表及字段實(shí)現(xiàn):
select TABLE_NAME, COLUMN_NAME, SEGMENT_NAME from dba_lobs -- 對(duì)應(yīng)的上面語(yǔ)句查到的segment_name名稱,如SYS_LOB0000152921C00008$$ where SEGMENT_NAME='segment_name名稱';
通過以上代碼,可以得到 segment_name所對(duì)應(yīng)的表名、列名。
九、Oracle查看表空間大小
查看表空間大小可以通過以下代碼實(shí)現(xiàn):
SELECT tablespace_name, sum(blocks) * 8192 / 1024 / 1024 "表空間大?。∕B)", sum(blocks) * 8192 / 1024 / 1024 - sum(bytes) / 1024 / 1024 "剩余空間(MB)", sum(bytes) / 1024 / 1024 "已用空間(MB)", sum(MAXBYTES) / 1024 / 1024 "最大空間(MB)" FROM (SELECT tablespace_name, file_id, MAX(blocks) MAXBLOCKS, SUM(blocks) blocks FROM dba_extents GROUP BY tablespace_name, file_id), (SELECT tablespace_name, file_id, SUM(bytes) bytes FROM dba_free_space GROUP BY tablespace_name, file_id) WHERE tablespace_name NOT LIKE 'UNDO%' AND tablespace_name NOT LIKE 'TEMP%' AND tablespace_name NOT LIKE 'SYSAUX%' AND tablespace_name NOT LIKE 'SYSTEM%' AND tablespace_name NOT LIKE 'RMAN%' AND tablespace_name NOT LIKE 'FLASH%' GROUP BY tablespace_name;
通過以上代碼,可以得到每個(gè)表空間的名字、表空間大小、剩余空間、已用空間和最大空間信息。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Oracle誤刪除表數(shù)據(jù)后的數(shù)據(jù)恢復(fù)詳解
這篇文章主要介紹了Oracle誤刪除表數(shù)據(jù)后的數(shù)據(jù)恢復(fù)詳解,需要的朋友可以參考下2015-08-08Oracle如何實(shí)現(xiàn)把B表某一字段更新到A表
這篇文章主要給大家介紹了關(guān)于Oracle如何實(shí)現(xiàn)把B表某一字段更新到A表的相關(guān)資料,在Oracle中使用一個(gè)表的字段來更新另一個(gè)表的字段,可以采用UPDATE SELECT語(yǔ)句,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2023-07-07Oracle批量執(zhí)行sql語(yǔ)句之禁用所有表的外鍵
這篇文章主要介紹了Oracle批量執(zhí)行sql語(yǔ)句之禁用所有表的外鍵的相關(guān)資料,需要的朋友可以參考下2016-01-01Oracle百分比分析函數(shù)RATIO_TO_REPORT() OVER()實(shí)例詳解
本文通過實(shí)例代碼給大家介紹了oracle百分比分析函數(shù)RATIO_TO_REPORT() OVER(),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08Oracle賬戶被鎖錯(cuò)誤:the?account?is?locked解決方法
the?account?is?locked意思是賬戶被鎖定了,這種情況需要大家去解鎖,這篇文章主要給大家介紹了關(guān)于Oracle賬戶被鎖錯(cuò)誤:the?account?is?locked的解決方法,需要的朋友可以參考下2023-12-12