analyze table xxx compute statistics 后系统CPU占用率经常100% 最近在给客户做数据表分析过后发现业务系统运行时,执行部份SQL时CPU使用率很高达到100%,在分析之前根本不会发生这种情况的,网上搜了一下说分析表后可能会导致系统执行计划的改变,在哪位对analyze table精通的过来帮小弟解释下呢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是执行计划变了。现在的任务就是找出占cpu最多的sql是什么。select * from v$sqlarea order by cpu_time desc,然后调整其执行计划。 关键还是找出占CPU过高的SQL再根据情况进行改进和分析表没太大关系分析表只是收集下统计数据而已 正是因为表分析,导致了sql使用了错误的执行计划,从而引起cpu高消耗。 错误的执行计划?这个"错误的"你是如何来理解的呢?分析表了以后oracle自然会根据收集来的表的现有统计数据作出执行计划的判断啊你说的"错误的"是指仅仅因为新的执行计划执行比较慢 就认为是错误的?望指点一下~ 做一些Oracle的监控吧。找出占用资源多的地方分析一下 先找出TOP CPU的SQL,然后看看其执行计划。再用HINT和优化器模式改变其执行计划,看看有什么不妥。 可以做个AWR分析一下。抓出占用cpu多的top sql,查看执行计划。看sql是否有问题。1.analyze table最好在业务不繁忙的时候做2.analyze table 不一定能提高效率。3.检查top sql中的表是否产生了行迁移select table_name, num_rows, chain_cnt from user_tables where num_rows > 1000 and chain_cnt > 1 order by chain_cnt desc 谢谢各位了,是SQL执行计划在表ANALYZE后改变了。 存储过程中一个简单的select count问题 求一个复杂的查询 统计子部门人数的问题 Oracle的一些问题 请问一条找最大值的sql语句 求教!我用console登陆的时候为什么老是提示“提供的登陆身份证明无效”??? 初学oracle的困惑??? oracle8.1.7安装问题。提示权限不够 Select * from 表1 where a=值 and b=值1 [有经验者请进] 请问在ORACLE里面用哪个函数获取一个时间的年、月、日、季 Oracle先后截取字符串 为什么dblink 可以查虚表,却查不了别的表
现在的任务就是找出占cpu最多的sql是什么。
select * from v$sqlarea order by cpu_time desc,然后调整其执行计划。
再根据情况进行改进
和分析表没太大关系
分析表只是收集下统计数据而已
分析表了以后oracle自然会根据收集来的表的现有统计数据作出执行计划的判断啊你说的"错误的"是指仅仅因为新的执行计划执行比较慢 就认为是错误的?望指点一下~
再用HINT和优化器模式改变其执行计划,看看有什么不妥。
抓出占用cpu多的top sql,查看执行计划。看sql是否有问题。
1.analyze table最好在业务不繁忙的时候做
2.analyze table 不一定能提高效率。
3.检查top sql中的表是否产生了行迁移
select table_name, num_rows, chain_cnt
from user_tables
where num_rows > 1000
and chain_cnt > 1
order by chain_cnt desc