日期:2014-05-17  浏览次数:20354 次

每天总有些时段数据库让CPU达到85%以上
正常的时刻都在10%以下,但最近注意到每天总有些时段超过85%,可知这绝对是SQL SERVER贡献的。
我查看了下,结果如图,请问下第一行那是什么啊,是怎么来的?

------解决方案--------------------
那一定是有任务在运行嘛。Profiler一下,不就抓出原形了。。。
如果不影响业务正常运行,也可以不理它
------解决方案--------------------
你可以把sql语句那一列的语句,贴出来看看,我只看到是通过openrowset 来读取数据,照理这个只是create procedure来创建存储过程,怎么会这么慢呢。

另外,你最好用下面的语句来分析,因为你上面的语句只是分析了瞬间的情况,不一定准确:
-- SQL CPU 100%问题
--使用DMV来分析SQL Server启动以来累计使用CPU资源最多的语句。

select 
    highest_cpu_queries.*,
    
    q.dbid, 
    q.objectid, 
    q.number, 
    q.encrypted,
     q.[text]
from 
(
select top 50 qs.*
from sys.dm_exec_query_stats qs
order by qs.total_worker_time desc
) as highest_cpu_queries

cross apply sys.dm_exec_sql_text(plan_handle) as q
--where text like '%%'
order by highest_cpu_queries.total_worker_time desc

------解决方案--------------------
通常这种操作是编译、重编译、hash join等操作导致,还有就是丢失索引进行大扫描操作
------解决方案--------------------
你把你的数据库代理服务关掉看看,是否CPU仍然占有率高,如果不是,那么肯定是有许多作业在执行