大家好!
今天我在查看数据库表空间状态时使用了如下语句:
select f.tablespace_name,a.total,u.used,f.free,round((u.used/a.total)*100) "% used",
round((f.free/a.total)*100) "% Free"
from
(select tablespace_name, sum(bytes/(1024*1024)) total
from dba_data_files group by tablespace_name) a,
(select tablespace_name, round(sum(bytes/(1024*1024))) used
from dba_extents group by tablespace_name) u,
(select tablespace_name, round(sum(bytes/(1024*1024))) free
from dba_free_space group by tablespace_name) f
WHERE a.tablespace_name = f.tablespace_name
and a.tablespace_name = u.tablespace_name这个语句是没有问题的,之前一直在用,大约1分钟左右就可以查询出结果,但是今天运行了20多分钟,也没查出来。请问各位如果遇到这种情况,如何一步步分析原因?PS:数据库锁表情况已查看,状态正常。
今天我在查看数据库表空间状态时使用了如下语句:
select f.tablespace_name,a.total,u.used,f.free,round((u.used/a.total)*100) "% used",
round((f.free/a.total)*100) "% Free"
from
(select tablespace_name, sum(bytes/(1024*1024)) total
from dba_data_files group by tablespace_name) a,
(select tablespace_name, round(sum(bytes/(1024*1024))) used
from dba_extents group by tablespace_name) u,
(select tablespace_name, round(sum(bytes/(1024*1024))) free
from dba_free_space group by tablespace_name) f
WHERE a.tablespace_name = f.tablespace_name
and a.tablespace_name = u.tablespace_name这个语句是没有问题的,之前一直在用,大约1分钟左右就可以查询出结果,但是今天运行了20多分钟,也没查出来。请问各位如果遇到这种情况,如何一步步分析原因?PS:数据库锁表情况已查看,状态正常。
解决方案 »
- oracle9i不能隐式把数字型转换成字符型了,如字符型字段=数字型
- 根据select出来的月数据,怎么再得到年累计数据?
- 问大家一个关于 oracle 数据维护的问题
- 面试题:update循环修改tname字段,且where条件值相同!!
- 如何备份partition
- DECODE语句这样写对吗?
- 假设以下存储过程在逻辑上没问题,且like 查询都是有必要的,请问个位高手是否还有优化方案!谢谢!
- 请问在sqlplus里如何显示当前用户可以打开的所有表?
- 简单问题:如何使用DBA studio的数据导出,导入功能?
- 两个问题?
- Error while trying to retrieve text for error ora-06413
- 数据库问题
2、重点关注dba_extents这个表,查看一下这个子查询的执行计划。
a.total_mbytes,
a.total_mbytes - nvl(b.free_mbytes, 0) used_mbytes,
nvl(b.free_mbytes, 0) free_mbytes,
trunc(nvl(b.free_mbytes, 0) / a.total_mbytes * 100, 2) pct_free
from (select tablespace_name, sum(bytes) / 1024 / 1024 total_mbytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name, sum(bytes) / 1024 / 1024 free_mbytes
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name(+)
order by 5 asc