-- ==== COPY-PASTE THIS ENTIRE BLOCK ====
SET LINESIZE 200
SET PAGESIZE 100
COLUMN table_name FORMAT A30
COLUMN partition_name FORMAT A30
COLUMN current_total_gb FORMAT 9,999,999.99
COLUMN one_partition_gb FORMAT 9,999,999.99
COLUMN projected_12m_gb FORMAT 9,999,999.99
COLUMN recommended_rds_gb FORMAT 9,999,999
SELECT
'YOUR_TABLE_NAME' AS table_name,
ROUND(SUM(bytes)/1024/1024/1024, 2) AS current_total_gb,
ROUND(SUM(CASE WHEN partition_name = 'THE_PARTITION_YOU_JUST_LOADED'
THEN bytes ELSE 0 END)/1024/1024/1024, 2) AS one_partition_gb,
ROUND(SUM(CASE WHEN partition_name = 'THE_PARTITION_YOU_JUST_LOADED'
THEN bytes ELSE 0 END)/1024/1024/1024, 2) * 12 AS projected_12_months_gb,
ROUND(SUM(CASE WHEN partition_name = 'THE_PARTITION_YOU_JUST_LOADED'
THEN bytes ELSE 0 END)/1024/1024/1024, 2) * 12 * 1.4 AS recommended_rds_storage_gb,
'Safe buffer = 40% (growth, temp, undo, redo, statistics, future partitions)' AS note
FROM dba_segments
WHERE owner = 'YOUR_SCHEMA_NAME'
AND segment_name = 'YOUR_TABLE_NAME'
AND segment_type LIKE '%PARTITION';
-- Optional: also show the breakdown by partition so they see only one is big
SELECT
partition_name,
ROUND(SUM(bytes)/1024/1024/1024, 2) AS size_per_partition_gb
FROM dba_segments
WHERE owner = 'YOUR_SCHEMA_NAME'
AND segment_name = 'YOUR_TABLE_NAME'
AND segment_type LIKE '%PARTITION'
GROUP BY partition_name
ORDER BY size_per_partition_gb DESC;
No comments:
Post a Comment