我正在尝试获取Oracle数据库中所有表空间的大小。我试过两种获取信息的方法。
选项1给出了很好的值,但是当表空间没有数据库文件时,它不会返回任何值。具体来说,它没有返回"TEMP“和"TESTTODELETE”表空间的任何值。
我注意到这两个表空间与其他表空间之间唯一的区别是,这两个表空间没有.dbf文件。
选项2为某些表空间提供了正确的值,但其他时候完全关闭。选项2确实为"TEMP“表空间返回了一些内容,但是它没有返回"TESTTODELETE”表空间的任何内容。
这两个选项都不返回表空间"TESTTODELETE“的任何信息。
:获得所有表空间的表空间总大小的最佳方法是什么,以便它反映企业管理器中显示的内容?
发布于 2016-03-07 22:28:21
dba_data_files
只包含有数据文件的表空间。如果需要包含不受数据文件支持的表空间(例如临时表空间),则需要在查询中包括dba_temp_files
。它们几乎完全相同的列布局,所以应该很容易将它们放在一起。
至于dba_tablespace_usage_metrics
,它报告的容量是表空间的最大大小。如果表空间已启用自动扩展,它将包含在计算中。此外,我不建议依赖v$parameters
来确定块大小。相反,请加入dba_tablespaces
,因为每个表空间都可以有自己的块大小。
https://stackoverflow.com/questions/35854907
复制相似问题