[英]Oracle Autonomous Database - Over-counting storage used?
我正在嘗試使用 oracle 的自治數據庫。 想了解 oracle APEX 服務有什么大驚小怪的 - 它使人們能夠直接在數據庫上構建應用程序。
注意:我創建了一個簡單的模式和一個 < 1000 行的表。
Output 的:
SELECT
OWNER,
SUM(BYTES) / 1024.0 / 1024.0 as SIZE_MB
FROM
DBA_EXTENTS
GROUP BY
ROLLUP(OWNER)
ORDER BY
SIZE_MB DESC
"OWNER", "SIZE_MB",
"", 168400.6875, <- Total
"SSB", 166316.9375, <- Sample (should not be counted)
"SYS", 1059.875,
"APEX_190200", 888.4375,
"MDSYS", 72.75,
"AUDSYS", 26.6875,
"APEX_200100", 13.4375,
"SH", 5.75,
...
A few more rows with size < 5 MB
安裝示例應用程序時,APEX 會為您創建工作區。 所述工作空間也位於 SCHEMA、Oracle 用戶帳戶中。 如有必要,它將為您創建新的。
當您刪除您的示例應用程序時,所有內容都被“刪除” - 但是,如果您創建了一個新的 USER/SCHEMA 來保存您的應用程序,那么它不會被刪除。
此外,表在刪除時不會被清除。
如果您將 go 放入回收站,您可以看到示例應用程序的“殘余”。
您可以清除該架構的回收站,或者更好的是,完全 DROP 用戶。
您可用的數據(例如 SSB)存儲在 Oracle 托管模式中,將顯示在任何數據庫報告中,但您不會為此付費。
您觀察到的數據量似乎比 Sample APEX 應用程序所能計算的要多。
如果您對此進行查詢,您將看到數據庫中的所有 SEGMENTS(表、分區、LOB),按大小 DESC 排序。
select OWNER "Owner",
TABLESPACE_NAME "Tablespace",
SEGMENT_NAME "Segment",
EXTENTS "Extents",
BYTES / 1024 / 1024 "Megabytes"
from SYS.DBA_SEGMENTS
where UPPER(
SUBSTR(
SEGMENT_NAME,
1,
4
)
) != 'BIN$' and
UPPER(
SUBSTR(
SEGMENT_NAME,
1,
3
)
) != 'DR$' and
( :TABLESPACE_NAME is null or
INSTR(
LOWER(TABLESPACE_NAME),
LOWER(
:TABLESPACE_NAME
)
) > 0 )
order by OWNER,
EXTENTS desc,
TABLESPACE_NAME,
SEGMENT_NAME
必要時丟棄和清洗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.