Oracle 如何知道表空间在特定时间内的增长?
我想知道是否有一个查询允许我查看表空间在某一时间的增长情况(按天、周、月或年),以及是否有任何查询允许我查看导致数据库增长的更改 要查看表空间的当前大小,我要做的是:Oracle 如何知道表空间在特定时间内的增长?,oracle,oracle11g,database-administration,Oracle,Oracle11g,Database Administration,我想知道是否有一个查询允许我查看表空间在某一时间的增长情况(按天、周、月或年),以及是否有任何查询允许我查看导致数据库增长的更改 要查看表空间的当前大小,我要做的是: SELECT df.tablespace_name "Tablespace", df.bytes / (1024 * 1024) "Size (MB)", SUM(fs.bytes) / (1024 * 1024) "Free (MB)", Nvl(Round(SUM(fs.bytes) * 100 / df.
SELECT df.tablespace_name "Tablespace",
df.bytes / (1024 * 1024) "Size (MB)",
SUM(fs.bytes) / (1024 * 1024) "Free (MB)",
Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free",
Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used"
FROM dba_free_space fs,
(SELECT tablespace_name,SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) df
WHERE fs.tablespace_name (+) = df.tablespace_name
GROUP BY df.tablespace_name,df.bytes
UNION ALL
SELECT df.tablespace_name tspace,
fs.bytes / (1024 * 1024),
SUM(df.bytes_free) / (1024 * 1024),
Nvl(Round((SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1),
Round((SUM(fs.bytes) - df.bytes_free) * 100 / fs.bytes)
FROM dba_temp_files fs,
(SELECT tablespace_name,bytes_free,bytes_used
FROM v$temp_space_header
GROUP BY tablespace_name,bytes_free,bytes_used) df
WHERE fs.tablespace_name (+) = df.tablespace_name
GROUP BY df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used
ORDER BY 4 DESC;
为什么不每天生成一个报告并在一段时间内监控它们呢?因为我需要在短时间内显示表空间的历史增长信息,这就是我进行查询的原因。