加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

一次sqlserver变慢优化过程

发布时间:2020-12-12 13:43:09 所属栏目:MsSql教程 来源:网络整理
导读:sqlserver数据库这几天慢的不行,上服务器一看,cpu占用100%。利用sqlserver management studio ,点击工具--sql sever profile查看了下,发现有sql在狂查,发现有个进程一直在执行插入删除操作,关掉了,cpu下来了,但是查询很慢。问了下小弟,小弟说,前几

sqlserver数据库这几天慢的不行,上服务器一看,cpu占用100%。利用sqlserver management studio ,点击工具--sql sever profile查看了下,发现有sql在狂查,发现有个进程一直在执行插入删除操作,关掉了,cpu下来了,但是查询很慢。问了下小弟,小弟说,前几天sqlserver整崩了,自己恢复过来,就变慢了。于是下面执行了下:


1.check db

DBCC CHECKDB?


2.重建索引(全库)

exec sp_msforeachtable 'DBCC DBREINDEX(''?'')' ?


3.整理索引碎片

Select 'DBCC INDEXDEFRAG ('+DB_Name()+','+Object_Name(ID)+','+Cast(INDID As Varchar)+')'+Char(10)
From SysIndexes
Where ID Not IN (Select ID From SYSObjects Where xType='S')

将打印出的语句放到客户端执行

执行时候会报

找不到表 'xx' 的任何名为 '_WA_Sys_0000000B_0A338187' 的索引。之类的错误,

分析连该标的语句,进行索引优化,重建一些关联查询的索引。


4.更新统计信息

sp_updatestats


5.select * from sysindexes where name like '_WA_sys%'?

就是看看,代表有很多索引优化工作要做


以上基本解决了问题。

-------------------------------------------------------------------------------


6.针对语句进行索引优化创建是必不可少的,客户端里右键sql语句---显示 估计的执行计划,然后就能看到各阶段开销,对于开销大的,一般是关联查询或者group by 之类的地方,建立组合索引或单建索引,速度可以明显提升。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读