内存原因导致服务器SQL服务频繁自动重启,怎么回事?

dong3431 2009-11-16 11:28:36
内存原因导致服务器SQL服务频繁自动重启,怎么回事?


公司有台服务器在跑SQL,最近这台服务器频繁出现SQL服务重启,查看事件日志,报错信息为:
sql 服务器进程内存的一大部分已调出。这可能导致性能下降。持续时间: 0 秒。工作集(KB): 63208,已提交(KB): 31496840,内存使用率: 0%%。

重启时间很短,大概1分钟,生产几乎也没什么影响。

服务器配置:4个双核cpu,32G内存
频率:刚开始四五天出现一次,后来两天出现一次,现在差不多一天出现一次。
数据库的操作:最近一个月都在用游标删除主表中的历史数据,每天的数据行在100k,事件也比较长,真个执行过程大约7、8小时。
(中间会有中断,提示错误:事务与另一个进程已被死锁在lock资源上,且该事务已被选作死锁牺牲品)

麻烦高手帮忙分析一下,谢谢!!!
...全文
698 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dong3431 2009-12-08
  • 打赏
  • 举报
回复
顶起,又出现了,晕~~~~~~~~
pbsh 2009-12-08
  • 打赏
  • 举报
回复
OLTP慎用游标
dong3431 2009-11-17
  • 打赏
  • 举报
回复
游标删除时不回滚的,不记录日志的。

你的方法可以考虑,关键是在删除的过程中可能会出现锁而中断该事务,这个比较难搞。

[Quote=引用 9 楼 colacat911 的回复:]
你一条一条删除的日志更多.............

而且如果时间列上有索引的话也不慢的

最多你这样来,写个存储过程

跑循环

先判断是不是有符合的要删除的记录

set rowcount 1000

执行删除语句

set rowcount 0
[/Quote]
--小F-- 2009-11-16
  • 打赏
  • 举报
回复
??同5,6楼问
忆轩辕 2009-11-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dong3431 的回复:]
应该不是SQL语句的问题!

引用 1 楼 colacat911 的回复:
优化语句.........

[/Quote]

有什么特殊需求,为什么拥游标删除记录?
netcup 2009-11-16
  • 打赏
  • 举报
回复
用游标删除主表历史数据啊?为什么用游标删除呢?
你的这个服务器除了SQLSERVER用,还有什么程序在用?
Garnett_KG 2009-11-16
  • 打赏
  • 举报
回复
64位的吗? 打上最新补丁试试。

然後开启sqlserver启动帐号的 "锁定内存分页"权限。
dong3431 2009-11-16
  • 打赏
  • 举报
回复
应该不是SQL语句的问题!

[Quote=引用 1 楼 colacat911 的回复:]
优化语句.........
[/Quote]
  • 打赏
  • 举报
回复
up
忆轩辕 2009-11-16
  • 打赏
  • 举报
回复
优化语句.........
忆轩辕 2009-11-16
  • 打赏
  • 举报
回复
你一条一条删除的日志更多.............

而且如果时间列上有索引的话也不慢的

最多你这样来,写个存储过程

跑循环

先判断是不是有符合的要删除的记录

set rowcount 1000

执行删除语句

set rowcount 0
dong3431 2009-11-16
  • 打赏
  • 举报
回复
直接删的话,数据量比较大,产生大容量事务日志,同时会对生产现场有一定影响。

生产第一,不得以才用游标删的。

[Quote=引用 7 楼 fredrickhu 的回复:]
??同5,6楼问
[/Quote]

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧