首页
登录 | 注册

sqlserver 索引优化 CPU占用过高 执行分析 服务器检查

1. 管理公司一台服务器,上面放的东西挺多的.有一天有个哥们告诉我现在程序卡的厉害.我给他说,是时候读点优化的书了.别一天到晚没个正形,现在写的程序卡的跑不动.他说我本地

是好好的,跑的很快.我说别扯那么多没用的,服务器不比你的本子强得多.待洒家上去看看.不看不知道一看吓一跳,CPU占用在95上下.开个程序是不卡,可整点有些时间是卡的一匹.这就令人很难受了.

本来服务器上也没有什么,就一个网站和几个数据库.那一个个分析吧,打开任务管理器和资源监视器,CPU占用达到93,这个还是普通,有时间到98 99.

sqlserver  索引优化 CPU占用过高 执行分析 服务器检查

2. 这不要了亲命了吗,打开资源监视器看看什么占用的最多吧.一看果然是数据库占用最多,数据服务占用过大

 sqlserver  索引优化 CPU占用过高 执行分析 服务器检查

这个为了重现占用过高,我把自己建的索引都删除掉后,sqlservr.exe立马成为,人群中最靓的仔.占用独占大头.看来只有试出来绝招了.作为面向浏览器编程的程序员,首先搜索一下.网上还真有建设性意见.都说是索引缺失

还贴心的给了一段查询索引的语句.把查出的结果做非聚集索引,就可以了.贴上代码.

SELECT  TOP 10 
        [Total Cost]  = ROUND(avg_total_user_cost * avg_user_impact * (user_seeks + user_scans),0) 
        , avg_user_impact
        , TableName = statement
        , [EqualityUsage] = equality_columns 
        , [InequalityUsage] = inequality_columns
        , [Include Cloumns] = included_columns
FROM        sys.dm_db_missing_index_groups g 
INNER JOIN    sys.dm_db_missing_index_group_stats s 
       ON s.group_handle = g.index_group_handle 
INNER JOIN    sys.dm_db_missing_index_details d 
       ON d.index_handle = g.index_handle
ORDER BY [Total Cost] DESC;

 

微软名字起的也很直白,直接叫missing_index,就是sqlserver 经过分析认为这些字段处理和查询是最耗时的,最好在 EqualityUsage上包含的字段上加个非聚集索引.前几个用时是后几名的好几个数量级.

加了索引立马飞起.

sqlserver  索引优化 CPU占用过高 执行分析 服务器检查

现在优化过,耗时都在一个数量级.如果没有优化是不同的几个数量级.

 


相关文章

  • Windbg分析高内存占用问题
    1. 问题简介 最近产品发布大版本补丁更新,一商超客户升级后,反馈系统经常奔溃,导致超市的收银系统无法正常收银,现场排队付款的顾客更是抱怨声声.为了缓解现场的情况, 客户都是手动回收IIS应用程序池才能解决. 这样的后果是很严重的,接到反馈 ...
  • 页面性能优化-原生JS实现图片懒加载
         在项目开发中,我们往往会遇到一个页面需要加载很多图片的情况.我们可以一次性加载全部的图片,但是考虑到用户有可能只浏览部分图片.所以我们需要对图片加载进行优化,只加载浏览器窗口内的图片,当用户滚动时,再加载更多的图片.这种加载图片的 ...
  • 《k8s 源码分析》- Custom Controller 之 Informer
    Custom Controller 之 Informer 概述 架构概览 reflector - List & Watch API Server Reflector 对象 ListAndWatch watchHandler - ad ...
  • LSTM实现中文文本情感分析
    1. 背景介绍 文本情感分析是在文本分析领域的典型任务,实用价值很高.本模型是第一个上手实现的深度学习模型,目的是对深度学习做一个初步的了解,并入门深度学习在文本分析领域的应用.在进行模型的上手实现之前,已学习了吴恩达的机器学习和深度学习的 ...
  • Redux的中间件原理分析
    redux的中间件对于使用过redux的各位都不会感到陌生,通过应用上我们需要的所有要应用在redux流程上的中间件,我们可以加强dispatch的功能.最近也有一些初学者同时和实习生在询问中间件有关的东西,笔者就把之前分析的东西放在这里分 ...
  • 学了很多乱七杂八的东西,但是依然停留在前端,在工作中一直和后端交流,但是不太了解数据库是怎么回事,为了加强学习,准备学习一些关于数据库相关的东西. 说起数据库可能会有很多很多,SQLServer.Oracle.Sybase等等等,还有就是要 ...

2019 cecdns.com webmaster#cecdns.com
12 q. 0.074 s.
京ICP备10005923号