首页 新闻 搜索 专区 学院

请问为什么这么简单的查询语句,执行时CPU占用率都有15?

0
悬赏园豆:5 [待解决问题]

SQL语句:

exec sp_executesql N'SELECT [t0].[id], [t0].[title], [t0].[year], [t0].[date], [t0].[content]
FROM [dbo].[xxxx] AS [t0]
WHERE [t0].[date] = @p0
ORDER BY [t0].[year]',N'@p0 nvarchar(4000)',@p0=N'12-17'

 

用的SQL2005数据库,上面语句是LINQ生成的,我在查询分析器里看到该语句执行时,CPU占用有15..

sky7034的主页 sky7034 | 初学一级 | 园豆:93
提问于:2015-12-17 17:12
< >
分享
所有回答(2)
0

系统一时想不开,间歇性抑郁症。

爱编程的大叔 | 园豆:30753 (高人七级) | 2015-12-17 17:16
0

CPU 利用率高,说明Sql server 正在从系统中查找数据,需要将数据从disk读取到data cache中,即IO次数多,IO次数多的原因主要是row size 太长,比如你的content,或者没有创建合适的索引,导致sql server 需要进行table scan,或者 server的physical memory 少,sql server paging 次数多,最后一个原因就是你的数据量大。

另外,sorting operation 需要耗费extra memory,用到tempdb,这或许IO次数多的一个因素。如果没有必须进行排序,建议不要使用order by 语句。

希望能帮到你

悦光阴 | 园豆:2251 (老鸟四级) | 2015-12-19 17:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册