数据库(sqlserver 2005)优化排查之路
查找问题过程是痛苦的,解决完问题是快乐!
兄弟帮助一个公司开发了一个旅游网站(asp.net+sqlsever2005),一直还算稳定,但是最近网站却慢的可以,让人头疼。登录服务器,进入任务管理器,发现数据库文件sql.exe 文件占用内存很大,于是兄弟就限制了sqlserver2005 的内存大小,具体如下。
1、登录SQL SERVER Management Studio;
2、对象资源管理中第一项上单击右键,选择属性,切换内存选项卡如下图;

3、在AWE分配内存上打勾,解释一下:AWE地址窗口化扩展插件,允许在 32 位版本的 Microsoft Windows 操作系统上使用超过 4 GB 的物理内存,最多可支持 64 GB 的物理内存;在最大服务器内存中输入合适的数据,那没多大的数据合适呢?建议输入服务器的物理内容一半多一些比较好;在每次查询占用的最小内存内输入一个数据,点击确定就ok了。
通过上述设置果然,sql.exe的内存大幅度下降,服务器很流畅,但是网站的速度并没有提高,头疼啊。通过查找发现sql.exe 占用CPU非常大,达到60%-70%,并且始终居高不下。哈哈发现了问题就不怕解决问题,于是乎我开始对数据库优化来降低cpu使用率。
1、既然CPU很高,我就要找到那些语句占用cpu较高,然后好进行优化,编写如下语句,通过语句查找确实发现了一些sql语句需要优化,而且还发现了一个影响速度的原因,就是有些表缺少索引;查找这些占用CPU的SQL语句,我还用到了sqlserver2005的自带的性能优化工具SQL Server Profiler,进行分析查找。
SELECT TOP 10 [session_id],[request_id],[start_time] AS '开始时间',[status] AS '状态',[command] AS '命令',dest.[text] AS 'sql语句',
B_NAME([database_id]) AS '数据库名',[blocking_session_id] AS '正在阻塞其他会话的会话ID',[wait_type] AS '等待资源类型',[wait_time] AS '等待时间',
[wait_resource] AS '等待的资源',[reads] AS '物理读次数',[writes] AS '写次数',[logical_reads] AS '逻辑读次数',[row_count] AS '返回结果行数'FROM
sys.[dm_exec_requests] AS der CROSS APPLY sys.dm_exec_sql_text](der.[sql_handle]) AS dest WHERE [session_id]>50 AND
DB_NAME(der.[database_id])='数据库名称' ORDER BY [cpu_time] DESC
ok我对语句进行了优化,又对没有索引的表建立索引(索引对查找数据的速度影响很大,所以大家一定要对所有表,经常查询的字段都要添加索引),发现CPU虽然下降了但是很不稳定以下60%,一下10%,网页打开依然很慢,怎么办呢?痛苦的争战中...打开window系统自带的事件查看器--》应用程序发现大量的数据库登录失败日志,点开查看发现“用户 'NT AUTHORITY\SYSTEM' 登录失败。 [客户端: <local machine>]”,如下图。


从网上查找了好多方法但是问题依然存在,试过N多办法,最后发现SQL Server Configuration Manager中的一个服务需要‘NT AUTHORITY\SYSTEM’登录,如下图,既然找到原因了,那就解决吧,这个服务对我们的网站没用,所以我把停掉了,服务器一切正常了。

数据库(sqlserver 2005)优化排查之路的更多相关文章
- SQLServer性能优化之---数据库级日记监控
上节回顾:https://www.cnblogs.com/dotnetcrazy/p/11029323.html 4.6.6.SQLServer监控 脚本示意:https://github.com/l ...
- SQLServer 2005 数据库定阅复制实现双机热备(主要是sharepoint 内容数据库)
原文:SQLServer 2005 数据库定阅复制实现双机热备(主要是sharepoint 内容数据库) 场景 公司最近的sharepoint的数据库服务器老是出问题,并且在一旦出现问题,就导致无法正 ...
- Sqlserver 2005 跨数据库 导入数据
--Sqlserver 2005 跨数据库 导入数据:--SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/O ...
- 01.SQLServer性能优化之----强大的文件组----分盘存储
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...
- 03.SQLServer性能优化之---存储优化系列
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概 述:http://www.cnblogs.com/dunitian/p/60413 ...
- 02.SQLServer性能优化之---牛逼的OSQL----大数据导入
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 上一篇:01.SQLServer性能优化之----强大的文件组----分盘存储 http ...
- SQLSERVER复制优化之一《改变包大小》
SQLSERVER复制优化之一<改变包大小> 自从搭了复制之后以为可以安枕无忧了,谁不知问题接踵而来 这次遇到的问题是丢包,不知道情况的读者可以先看一下我之前写的一篇<SQLSERV ...
- SQLSERVER复制优化之一《减少包大小》
原文:SQLSERVER复制优化之一<减少包大小> SQLSERVER复制优化之一<减少包大小> 自从搭了复制之后以为可以安枕无忧了,谁不知问题接踵而来 这次遇到的问题是丢包, ...
- sqlserver 索引优化 CPU占用过高 执行分析 服务器检查
原文:sqlserver 索引优化 CPU占用过高 执行分析 服务器检查 1. 管理公司一台服务器,上面放的东西挺多的.有一天有个哥们告诉我现在程序卡的厉害.我给他说,是时候读点优化的书了.别一天到晚 ...
随机推荐
- 大厂面试官最常问的@Configuration+@Bean(JDKConfig编程方式)
大厂面试官最常问的@Configuration+@Bean(JDKConfig编程方式) 现在大部分的Spring项目都采用了基于注解的配置,采用了@Configuration 替换标签的做法.一 ...
- python——字符串截取
str = ‘0123456789’ print str[0:3] #截取第一位到第三位的字符 print str[:] #截取字符串的全部字符 print str[6:] #截取第七个字符到结尾 p ...
- nor flash之4字节地址模式
背景 容量低于 16M bytes 的 nor,一般使用 3 字节地址模式,即命令格式是 cmd + addr[2] + addr[1] + addr[0] + ... 使用超过 16M bytes ...
- javascript设计模式和开发实践(阶段一)
1,设计模式的作用:让人们写出可复用和可维护性高的程序,代价可能是,额外增加代码量: 比较形象的例子:空房间里面放东西,如果日复一日的往里面扔东西,时间久了,很难找到自己想要的东西,调整也不容易,但是 ...
- ios background task
今天要实现一个需求,当用户触摸HOME键,将应用切换到后台时,启动自动备份的任务.这涉及到ios的后台任务处理,本文简单总结一下 首先,ios app有5种状态,分别是:not running, in ...
- swoole 异步非堵塞 server/端 client/端 代码,已经测试完毕。贴代码
服务器环境 centos7.0 swoole4.3 php7.2 pcre4.8 nginx1.8 php-fpm server.php <?php class Server { pr ...
- c++中比较好用的黑科技
切入正题,上黑科技 一.黑科技函数(常用的我就不写了,例如sort函数) 1.next_permutation(a+1,a+1+n) a[1-n]全排列 2.reverse(a+1,a+1+n) 将a ...
- CSRF攻击原理及预防手段
CSRF全程 Cross Site Request Forgery, 跨站域请求伪造.这种攻击方式相对于XSS,SQL注入等攻击方式比较晚被发现,今天就来讲解下这种攻击方式以及避免方式. 攻击过程 ...
- Python 小技巧:如何实现操作系统兼容性打包?
有一个这样的问题:现要用 setuptools 把一个项目打包成 whl 文件,然后 pip install 在 Windows/Linux 两种操作系统上,但是该项目中有一些依赖库只有 Window ...
- Jmeter——如何使得token在各线程组间引用的游刃有余
在以前的博文中,有介绍过,jmeter基本的关联,关联就是将参数在各接口中动态传参,使得接口脚本变得灵活使用,非一次性脚本.今天再来介绍一种jmeter全局变量的设置与使用,可以让脚本运用更丰富,场景 ...