Sql server sqlserver.exe占用的CPU使用率很高,超过90%。在哪种情况下';s的sql server占用了这么多CPU?
我的服务器上有SQLServer2008R2,我的问题是它的CPU使用率达到90%以上。我只想知道 在哪些情况或场景中,sql server的cpu内存使用率如此之高 在哪些情况或场景中,sql server的cpu内存使用率如此之高 这是一个非常广泛的问题,但以下是我将检查的顺序 是否有任何应用程序托管在同一个框中,而不是SQLServer。。?如果是,尽量避免,因为这也不属于最佳实践 当SQLServer使用巨大的CPU时,首先要进行基本的故障排除,找出最消耗CPU的查询 这可以通过下面的查询找到,或者您可以使用特定于您正在使用的版本的Sql server sqlserver.exe占用的CPU使用率很高,超过90%。在哪种情况下';s的sql server占用了这么多CPU?,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,我的服务器上有SQLServer2008R2,我的问题是它的CPU使用率达到90%以上。我只想知道 在哪些情况或场景中,sql server的cpu内存使用率如此之高 在哪些情况或场景中,sql server的cpu内存使用率如此之高 这是一个非常广泛的问题,但以下是我将检查的顺序 是否有任何应用程序托管在同一个框中,而不是SQLServer。。?如果是,尽量避免,因为这也不属于最佳实践 当SQLServer使用巨大的CPU时,首先要进行基本的故障排除,找出最消耗CPU的查询 这可以通过下面的查
SELECT TOP 20
qs.sql_handle,
qs.execution_count,
qs.total_worker_time AS Total_CPU,
total_CPU_inSeconds = --Converted from microseconds
qs.total_worker_time/1000000,
average_CPU_inSeconds = --Converted from microseconds
(qs.total_worker_time/1000000) / qs.execution_count,
qs.total_elapsed_time,
total_elapsed_time_inSeconds = --Converted from microseconds
qs.total_elapsed_time/1000000,
st.text,
qp.query_plan
from
sys.dm_exec_query_stats as qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as st
cross apply sys.dm_exec_query_plan (qs.plan_handle) as qp
ORDER BY qs.total_worker_time desc
下一步是尝试优化这些查询…记住,当
1.没有合适的索引,所以每次都要读取整个表。2.索引存在,但您也面临内存压力,这可能会导致缓冲池被刷新
此外,这将在将来帮助您,并查看您是否需要更多处理器。谢谢@TheGamesiswar。这个问题并不经常发生,但我有它发生的日期。那么,我们可以找到在特定日期消耗大量CPU时间的查询吗?您无法找到特定日期的查询,但您将得到截至日期的聚合数据