当你的MSSQL数据库cpu很高的时候,如何去定位损耗cpu的SQL语句,并解决损耗问题?接下来我为大家实际解决一下这个问题:
1.首先我们要用查询追踪器追踪耗费cpu的sql语句,如图设置:
打开查询器后,筛选查询条件,只需要选择红色方框的即可(存储过程和SQL语句的跟踪)
点击列筛选器,cpu和duration耗时的条件
![提高MSSQL数据库读取速度,降低CPU损耗(原创) - worm128 - Winlone技术博客](http://img0.ph.126.net/20imelbVfp3ZacLEmtuSwQ==/1004302716921223800.jpg)
![提高MSSQL数据库读取速度,降低CPU损耗(原创) - worm128 - Winlone技术博客](http://img1.ph.126.net/9D_taboqghBbFy4iLep3vA==/2578592261663921601.jpg)
选择你认为有问题的sql语句或者存储过程,选中那条数据,在列表下面有个方框会把sql内容显示在上面,复制出来
2. 放到查询器当中,选择红色方框的“数据库引擎优化顾问”
执行分析:
分析后,优化顾问会提供优化方案给你,估计能提供57%的速度和损耗,基本上方案都是建议你建立索引
![提高MSSQL数据库读取速度,降低CPU损耗(原创) - worm128 - Winlone技术博客](http://img3.ph.126.net/djqJAIkype7vCOlAzB019A==/1352487263112300223.jpg)
![提高MSSQL数据库读取速度,降低CPU损耗(原创) - worm128 - Winlone技术博客](http://img2.ph.126.net/RCz-Z2Hk7KkOKf0iV18Uvg==/673851094262907792.jpg)
看下图,分别有几个表需要建立索引的,我们点击“定义”的蓝色连接,
![提高MSSQL数据库读取速度,降低CPU损耗(原创) - worm128 - Winlone技术博客](http://img8.ph.126.net/VZ_y27XqYqfyjRGYgj34Lg==/1567815620295960558.jpg)
把这个建立索引的sql复制到查询器执行一下,即可
最后,我们来看看最终优化结果,红色框框的是我优化后的结果,cpu从 57.9% 下降至 27.8%![提高MSSQL数据库读取速度,降低CPU损耗(原创) - worm128 - Winlone技术博客](http://img4.ph.126.net/FqOu7VNBawmIt-_sQZxb2A==/2610680409008934004.jpg)
![提高MSSQL数据库读取速度,降低CPU损耗(原创) - worm128 - Winlone技术博客](http://img9.ph.126.net/9NP4sz_AUBhVqxD9IDY4tA==/591941876040109089.jpg)