Oracle 查询结果与企业管理器值不匹配
Oracle query results don't match Enterprise Manager values
我正在尝试获取 Oracle 数据库中所有表空间的大小。
我尝试了两种获取信息的方法。
选项 1 给了我很好的值,但是当表空间没有数据库文件时它不会给 return 任何值。具体来说,它不会 returning "TEMP" 和 "TESTTODELETE" 表空间的任何值。
我注意到这 2 个表空间与其他表空间之间的唯一区别是这 2 个没有 .dbf 文件。
选项 2 为我提供了一些表空间的正确值,但其他时候则完全不正确。选项 2 return 对 "TEMP" 表空间做了一些事情,但它对 "TESTTODELETE" 表空间没有 return 任何事情。
这两个选项都不 return 表空间 "TESTTODELETE" 的任何信息。
获取所有表空间的表空间总大小(以 MB 为单位)以反映在企业管理器中显示的内容的最佳方法是什么?
dba_data_files
仅包含具有数据文件的表空间。如果您需要包含不受数据文件支持的表空间(例如临时表空间),则需要在查询中包含 dba_temp_files
。它们的列布局几乎完全相同,因此应该很容易 UNION
将它们放在一起。
至于 dba_tablespace_usage_metrics
,它报告的容量是表空间的 最大 大小。如果表空间启用了自动扩展,它将包括在计算中。此外,我不建议依赖 v$parameters
来确定块大小。相反,加入 dba_tablespaces
因为每个表空间都可以有自己的块大小。
我正在尝试获取 Oracle 数据库中所有表空间的大小。 我尝试了两种获取信息的方法。
选项 1 给了我很好的值,但是当表空间没有数据库文件时它不会给 return 任何值。具体来说,它不会 returning "TEMP" 和 "TESTTODELETE" 表空间的任何值。
我注意到这 2 个表空间与其他表空间之间的唯一区别是这 2 个没有 .dbf 文件。
选项 2 为我提供了一些表空间的正确值,但其他时候则完全不正确。选项 2 return 对 "TEMP" 表空间做了一些事情,但它对 "TESTTODELETE" 表空间没有 return 任何事情。
这两个选项都不 return 表空间 "TESTTODELETE" 的任何信息。
获取所有表空间的表空间总大小(以 MB 为单位)以反映在企业管理器中显示的内容的最佳方法是什么?
dba_data_files
仅包含具有数据文件的表空间。如果您需要包含不受数据文件支持的表空间(例如临时表空间),则需要在查询中包含 dba_temp_files
。它们的列布局几乎完全相同,因此应该很容易 UNION
将它们放在一起。
至于 dba_tablespace_usage_metrics
,它报告的容量是表空间的 最大 大小。如果表空间启用了自动扩展,它将包括在计算中。此外,我不建议依赖 v$parameters
来确定块大小。相反,加入 dba_tablespaces
因为每个表空间都可以有自己的块大小。