首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

数据库CPU100%的有关问题

2012-09-25 
数据库CPU100%的问题现在数据库服务器在晚上21:30---到21:35分钟时候,会出现CPU--100%情况我用SQL 事件探

数据库CPU100%的问题
现在数据库服务器在晚上21:30---到21:35分钟时候,会出现CPU--100%情况

我用SQL 事件探查器跟踪也没有发现在这个时间段出现什么SQL语句性能很差的情况,当CPU100%一些常用的SQL语句也会性能变的很差,也会开始出现现死锁的情况.
我查了,这个时间段也没有什么定时任务在执行.
我想请问一下,什么情况下会出现CPU100%情况,我怎么跟踪了,因为我跟踪后看出不什么问题.
谢谢各位.找了一段时间都没有找到原因.

[解决办法]
不一定就是SQL造成CPU--100%

你查查其他进程.


[解决办法]
任务管理器--查看CPU使用情况--那个进程占用过多。
如果是SQL Server ,再用事件查看器查看
[解决办法]
用 管理工具——性能,监控一下。 看CPU的峰值与I/O还是与别的有关。 然后进一步进行处理!
[解决办法]
CPU占用率高的九种可能 
1、防杀毒软件造成故障 
由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,者,升级你的硬件配备。 
2、驱动没有经过认证,造成CPU资源占用100% 
大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。 处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。 
3、病毒、木马造成 
大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。 
4、控制面板—管理工具—服务—RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。 
5、开始->;运行->;msconfig->;启动,关闭不必要的启动项,重启。 
6、查看“svchost”进程。 
svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。 
7、查看网络连接。主要是网卡。 
8、查看网络连接 
当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。 
要解决此问题,我们可以通过修改注册表来解决:在注册表编辑器中依次展开[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的DWORD值。然后双击该值,在打开的窗口中键入下列数值并保存退出: 
9、看看是不是Windows XP使用鼠标右键引起CPU占用100% 
在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题: 
任何文件的拷贝操作在那个时间将有可能停止相应 
网络连接速度将显著性的降低 
所有的流输入/输出操作例如使用Windows Media Player听音乐将有可能是音乐失真成因: 
当你在资源管理器里面右键点击一个文件或目录的时候,当快捷菜单显示的时候,CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。
[解决办法]
是不是这个时候有在作备份等特定的操作导致!
[解决办法]

探讨
可以确定是SQL造成CPU100%

[解决办法]
探讨
出现CPU100%只会出现5分钟,5分钟后就会全部正常.

[解决办法]
看一下机器上那段时间有什么操作没有?包括其他程序以及数据库作业
[解决办法]
开profiler监控这个时间段内的所有sql.
如果没有问题,那就不是sql server问题。
[解决办法]
你21.30之前登陆服务器,直接查看那个进程占CPU,要先确定是不是SQL作怪。如果是SQL再查看定时作业。
[解决办法]
在21点30之前打开事件探查器,保存记录,第二天查看
[解决办法]
事件探查器你是怎么使用的?
[解决办法]
个人感觉在这个时间段有其它的应用程序在集中访问数据库.
[解决办法]
那很可能原因不在数据库这边,而是数据库服务器上的其他进程引起
[解决办法]
在那个时间段内,运行以下语句,贴出结果

select * from sys.dm_exec_sessions 
order by cpu_time desc
[解决办法]


围观
[解决办法]

探讨
您好,我的是SQL Server 2000
select * from sys.dm_exec_sessions
order by cpu_time desc
这个不能用,有其它替代语句吗?

[解决办法]
4.考虑一下,有没有某个程序在这个时刻启动来获取SQL Server的数据
[解决办法]
是不是SQL SERVER 中有什么定时的操作,如定时备份、定时与其他数据库同步等???
[解决办法]
围观
[解决办法]
有可能在这段时间内数据库访问量过高,看下是否有恶意访问进程

[解决办法]
可不可以那个时刻把网络断掉,代理关掉。再看是否。。。。

若先保证正常的业务,就慢慢找了....
[解决办法]
那你看SQL Serve 的job,看看谁的schedule是从9:30开始的。如果job不多的话,手工查看。
[解决办法]


用代码的话看看这两个link:

http://www.mssqltips.com/tip.asp?tip=1622

http://www.sql-server-performance.com/articles/dba/job_report_p2.aspx
[解决办法]
探讨
问题还是没有解决
代理关掉,查看了系统进程没有多,网络流程也没有什么变化,
只是SQL CPU占有率变成90以上,进程从90 一下子增加到了134个.
另外发现audit log 与 audit logout  内容很
有部分audit logout 占有资源很大

再麻烦一下各位,有没有什么方法能查出原因?

热点排行