一次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) 将打印出的语句放到客户端执行 执行时候会报 找不到表 'xx' 的任何名为 '_WA_Sys_0000000B_0A338187' 的索引。之类的错误, 分析连该标的语句,进行索引优化,重建一些关联查询的索引。 4.更新统计信息 sp_updatestats 5.select * from sysindexes where name like '_WA_sys%'? 就是看看,代表有很多索引优化工作要做 以上基本解决了问题。 ------------------------------------------------------------------------------- 6.针对语句进行索引优化创建是必不可少的,客户端里右键sql语句---显示 估计的执行计划,然后就能看到各阶段开销,对于开销大的,一般是关联查询或者group by 之类的地方,建立组合索引或单建索引,速度可以明显提升。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |