8

我正在使用 SQL Express 2008 作为 Web 应用程序的后端,问题是 Web 应用程序是在工作时间使用的,所以有时在午餐或休息时间,如果 20 分钟内没有用户登录,SQL Express 会进入空闲状态模式并释放其缓存。

我知道这一点,因为它记录了以下内容:

服务器在空闲 9709 秒后恢复执行

或者

在事件日志中启动数据库“xxxxxxx”

我想避免这种空闲行为。无论如何配置 SQL express 以停止空闲或至少将时间窗口扩大到超过 20 分钟?或者是我唯一的选择是编写一个每 15 分钟轮询一次数据库以保持后台运行的服务?

在阅读了这样的文章后它看起来并不乐观,但也许有人知道有黑客或注册表设置。

4

4 回答 4

8

该行为是不可配置的。

您确实必须实现一种方法来经常轮询数据库。另外,就像您链接到的文章所说,将 AUTO CLOSE 属性设置为 false。

于 2009-02-23T21:07:11.640 回答
3

每隔几分钟执行一次这样的简短 SQL 查询就可以防止 SQLserver 空闲:

SELECT TOP 0 NULL
  FROM [master].[dbo].[MSreplication_options]
GO
于 2015-02-25T17:02:00.580 回答
2

编写一个线程,每隔几分钟执行一次简单查询。在你的 global.asax Application_Start 中启动线程,你应该完成了!

于 2009-02-23T21:08:03.120 回答
1

这是一个很好的解释:https ://blogs.msdn.microsoft.com/sqlexpress/2008/02/22/understanding-sql-express-behavior-idle-time-resource-usage-auto_close-and-user-instances/

随便:不知道sql快递空转后的时间。我建议每 10 分钟运行一次下面的脚本(也许是任务调度程序)。这将防止SQLServer Express 空闲:

SELECT TOP 0 NULL FROM [master].[dbo].[MSreplication_options] GO

还要确保所有数据库的属性都设置为AUTO_CLOSE = FALSE

于 2016-07-26T15:39:38.320 回答