SQL Server 2008恢复模型和日志大小是否会影响sqlservr.exe进程的内存使用情况?

问题

我们有一个SQL Server实例(2008)运行我们的软件,我们认为less数用户(在任何给定时间大约30个并发连接到服务器)

作为一个供应商,我们不是SQL数据库pipe理员,只能为这些问题提供基本的技能。 大多数客户都有自己的SQL DBA来为他们填补这个angular色,但是如果客户没有足够的支持,有时候我们必须介入和协助。

虽然他们确实使用这个服务器不仅仅是SQL,而且还有一个问题需要单独处理,但是最近我们注意到这个客户端的sqlservr.exe进程使用的RAM比我们预期的更多。

背景

首先,让我从提到我了解SQL最大服务器内存默认基本上设置为使用服务器可用的所有内容。 我们将这个值更改为10GB,因为我们预计他们在任何时候只需要大约4-6GB,考虑到它们的大小和部分软件。

一些可能与我的问题相关的信息:

  1. 他们将我们的软件的数据库设置为完全恢复模式,并且日志在3年内一直在增长和不增加维护。
  2. 当我们重新启动SQL服务时,用户重新回到软件中,使用了大约24小时的时间,他们使用我们期望看到他们使用的RAM数量(分配的10GB的大约4-6个)
  3. 我们一直运行Perfmon来比较一些计数器的结果和一段时间没有这个问题,但没有注意到日志之间的任何显着差异
  4. 检查事件查看器是否有任何明显的内存问题

结论

我现在唯一的猜测是,这与巨大的日志/恢复模型或与caching相关的一些SQL设置有关。 也许这是SQL Expert计划看到的正常行为,但是在SQL Server中运行我们软件的有限经验中,对于这种大小的安装,这是不正常的。

所以总结一下:一个TLDR:

SQL Server 2008恢复模型和日志大小是否会影响sqlservr.exe进程的内存使用情况? 如果答案是肯定的,我的描述是否正常,我们之前没有经历过这个问题? 如果答案是否定的,你会build议调查解决我的问题的其他一些事情?

这个数据库有多大? SQL Server喜欢把整个数据库放在内存中。 听起来,从你的问题,就像它是一个200 MB的MDF与250 GB的LDF,或者像这样的恐怖。

恢复模式不会进入它,除非它们完全忽略了数据库,这显然是。

  • 将数据库设置为简单恢复。
  • 将日志文件收缩到一个合理的大小。
  • 将数据库设置为完全恢复。
  • 运行完整备份。
  • 立即计划定期完整和事务日志备份。

我个人不会浪费任何时间去查看其他任何东西,直到你实现基本的数据库维护(尽pipe10 GB让我觉得是SQL Server的一个吝啬的内存分配)。