【Oracle】查看帶Lob字段的表大小


 

  Oracle中,對表上的lob字段是單獨存儲的,所以使用segment_name = 表名的時候,只能統計非 lob 字段的數據大小,無法統計上lob字段的。

  為了方面統計,在MOS上找到一篇參考文章:

How to Compute the Size of a Table containing Outline CLOBs and BLOBs (文檔 ID 118531.1)

 

相關的SQL語句如下:

SELECT
 (SELECT SUM(S.BYTES)                                                                                                                   -- The Table Segment size
  FROM DBA_SEGMENTS S
  WHERE S.OWNER = UPPER('&SCHEMA') AND
       (S.SEGMENT_NAME = UPPER('&TABNAME'))) +  (SELECT SUM(S.BYTES)                                                             -- The Lob Segment Size
  FROM DBA_SEGMENTS S, DBA_LOBS L
  WHERE S.OWNER = UPPER('&SCHEMA') AND
       (L.SEGMENT_NAME = S.SEGMENT_NAME AND L.TABLE_NAME = UPPER('&TABNAME') AND L.OWNER = UPPER('&SCHEMA'))) +  (SELECT SUM(S.BYTES)    -- The Lob Index size
  FROM DBA_SEGMENTS S, DBA_INDEXES I
  WHERE S.OWNER = UPPER('&SCHEMA') AND
       (I.INDEX_NAME = S.SEGMENT_NAME AND I.TABLE_NAME = UPPER('&TABNAME') AND INDEX_TYPE = 'LOB' AND I.OWNER = UPPER('&SCHEMA')))
  "TOTAL TABLE SIZE"
FROM DUAL;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM