首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 查詢使用者表空間使用情況:核心視圖與實用 SQL

     編輯:Oracle 資料庫基礎

常用查詢速查表

需求SQL
當前用戶所有表SELECT * FROM USER_TABLES;
所有函數與預存程序SELECT * FROM USER_SOURCE;
所有資料庫用戶SELECT * FROM ALL_USERS; 或 SELECT * FROM DBA_USERS;
當前連線 SessionSELECT * FROM V$SESSION;
當前用戶權限SELECT * FROM SESSION_PRIVS;

表空間使用率詳細查詢


SELECT a.file_id "FileNo",
       a.tablespace_name "Tablespace_Name",
       a.bytes "Bytes",
       a.bytes - SUM(NVL(b.bytes,0)) "Used",
       SUM(NVL(b.bytes,0)) "Free",
       ROUND(SUM(NVL(b.bytes,0)) / a.bytes * 100, 2) "%Free"
FROM dba_data_files a, dba_free_space b
WHERE a.file_id = b.file_id(+)
GROUP BY a.tablespace_name, a.file_id, a.bytes
ORDER BY a.tablespace_name;

輸出範例解讀

FileNo Tablespace_Name   Bytes      Used        Free        %Free
-----  ---------------   -----      ---         ----        -----
1      IDX_JF          2.146E+09  849305600   1.297E+09   60.43
2      JFSJTS          2.146E+09  1.803E+09   343793664   16.02
3      JFSJTS          2.146E+09  1.359E+09   787431424   36.69
4      RBS             523239424  359800832   163438592   31.24
5      RBS             1.610E+09  1.606E+09   3104768     0.19  ← 空間極低,需擴充
6      RBSJF           3.220E+09  2.716E+09   504356864   15.66
7      SFGLTS          2.146E+09  1.228E+09   918159360   42.78
8      SFSJTS          2.146E+09  1.526E+09   620093440   28.89
9      SYSTEM          523239424  59924480    463314944   88.55
10     TEMP            523239424  294912      522944512   99.94
11     TOOLS           15728640   12582912    3145728     20.00
12     USERS           7340032    8192        7331840     99.89

空間管理建議

  • 使用率 > 85%(如 RBS FileNo=5):立即增加資料檔或啟用自動擴展
  • 使用率 < 20% 且為靜態資料:考慮縮減配置(但 SYSTEM 表空間難以縮減,需重建資料庫)
  • 定期 Export/Import:可釋放大量碎片空間,延緩新增資料檔需求
  • 高 INSERT/UPDATE 表空間:自由空間比例降至 15% 以下時必須擴充
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved