sqlserver 活动监视器 cpu显示问题

足球不是方的 2019-01-31 05:09:07
如题,服务器上的sqlservser活动监视器当出现死锁是,到达60%就走横线,而本地的却是一直到100%








测试了下,以下这个配置有如上效果;
ALTER SERVER CONFIGURATION SET PROCESS AFFINITY CPU=0 TO 1 ;


那怎么查看当前cpu的配置值是多少(1,2,3?)
...全文
809 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2019-02-15
  • 打赏
  • 举报
回复
死锁和 CPU 使用多少并无绝对关系
吉普赛的歌 版主 2019-02-14
  • 打赏
  • 举报
回复
如果你只是希望服务器负载高时不要重启, 那应该先限制 sqlserver 的最大内存: 当然, 如果你的服务器不是纯DB服务器, 还有网站之类的, 那DB服务器占用的内存应该还要减少才可以。 其次, 应该找出死锁的原因和CPU高的原因。 查死锁: https://blog.csdn.net/yenange/article/details/73883915 查慢SQL:
SELECT TOP 10 OBJECT_NAME(qt.objectid, qt.dbId)  AS procName,
       DB_NAME(qt.dbId)                   AS [db_name],
       qt.text                            AS SQL_Full,
       SUBSTRING(
           qt.text,
           (qs.statement_start_offset / 2) + 1,
           (
               (
                   CASE statement_end_offset
                        WHEN -1 THEN DATALENGTH(qt.text)
                        ELSE qs.statement_end_offset
                   END 
                   - qs.statement_start_offset
               ) / 2
           ) + 1
       )                                  AS SQL_Part --统计对应的部分语句
       ,
       qs.creation_time,
       qs.last_execution_time,
       qs.execution_count,
       qs.last_elapsed_time / 1000000     AS lastElapsedSeconds,
       qs.last_worker_time / 1000000      AS lastCpuSeconds,
       CAST(
           qs.total_elapsed_time / 1000000.0 / (
               CASE 
                    WHEN qs.execution_count = 0 THEN -1
                    ELSE qs.execution_count
               END
           ) AS DECIMAL(28, 2)
       )                                  AS avgDurationSeconds,
       CAST(qs.last_logical_reads AS BIGINT) * 1.0 / (1024 * 1024) * 8060 AS 
       lastLogicReadsMB,
       qs.last_logical_reads,
       qs.plan_handle
FROM   sys.dm_exec_query_stats qs
       CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) AS p
WHERE  qs.last_execution_time >= CONVERT(CHAR(10),GETDATE(),120)+' 08:00'	--今天8点之后的慢SQL
       AND qs.last_elapsed_time >= 3 * 1000 * 1000							--只取执行时间大于 3 秒的记录
       AND qt.[text] NOT LIKE '%Proc_DBA%'
ORDER BY
       qs.last_worker_time DESC
你这个问题, 20分还是太少了……
薛定谔的DBA 2019-02-14
  • 打赏
  • 举报
回复
表达不清楚。。。 AFFINITY 可以绑定该实例使用哪个CPU,资源调控器也控制。CPU 高就找出原因区解决,否则治标不治本。
唐诗三百首 2019-02-14
  • 打赏
  • 举报
回复
CPU 100%应该是有问题SQL造成的, 可以在事发时,暂不重启服务器, 查看所有SQL进程,看哪些耗CPU较大.
相关系统视图: sys.sysprocesses, sys.dm_exec_query_stats
足球不是方的 2019-02-11
  • 打赏
  • 举报
回复
引用 1 楼 唐诗三百首 的回复:
"服务器上的sqlservser活动监视器当出现死锁是,到达60%就走横线,而本地的却是一直到100%"
--> 请问"服务器上的"和"本地的"各指的是什么机器? 为何有可比性?



其实我想问,sqlserver 除了
ALTER SERVER CONFIGURATION SET PROCESS AFFINITY CPU=0 TO 1 ;
和通过属性里的处理器选项,还有其他方式控制sqlserver对整个服务器cpu的消耗吗?以免cpu为100%只能重启服务器来解决。
唐诗三百首 2019-02-02
  • 打赏
  • 举报
回复
"服务器上的sqlservser活动监视器当出现死锁是,到达60%就走横线,而本地的却是一直到100%"
--> 请问"服务器上的"和"本地的"各指的是什么机器? 为何有可比性?

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧