为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
执行select * from dba_segments 可以查询出结果,但执行
select count(*) from dba_segments 无法出结果,如下图所示
如果是想查询对象占用空间大小,可以结合函数table_used_space()和index_used_space(),替换查询dba_segments。
1、你想要查询数据库有多少实体对象,所以count(*)计算对吧,所以,这个的执行时长和你的实体对象多少有关系,你的对象越多,查询的时间就越长;
2、怎么样增加效率呢
数据库层面:添加hint parallel并行参数,增加执行效率;
硬件资源方面:查看数据库服务器的cpu使用率,如果查询的时候cpu使用率很高,证明出现了cpu瓶颈,您需要添加cpu;

select /+ enable_hash_join(0)/ count(*) from dba_segments;
试试这个hint,这个兼容性视图比较复杂,已提交研发优化