linux 的oracle 一般项目CPU占用在 20%左右,当网站访问速度过慢,且本地访问很快可以用 top 看下是不是CPU使用过高
且是oracle用户引起的。如果是请查询占用CPU过高额语句
select *
from (select v.sql_id,
v.child_number,
v.sql_fulltext,
v.elapsed_time,
v.cpu_time,
v.disk_reads,
rank() over(order by v.elapsed_time desc) elapsed_rank
from v$sql v) a
where elapsed_rank <= 10
ORDER BY cpu_time desc;
然后把占用前10个的语句查看下原因吧。
1.如果没有索引要建立索引。
2.如果查询的实体为hibernate 且查询出整个实体,那么就请只查询需要的属性。若有clob的字段一定不要查询。(且CLOD不能distinct,解决办法是将clod建立关联表)