一次sqlserver变慢优化过程

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 之类的地方,建立组合索引或单建索引,速度可以明显提升。


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值