有没有办法从Idling停止SQL Express 2008?

时间:2009-02-23 21:00:28

标签: sql database sql-server-express

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

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

  

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

  

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

我想避免这种闲散行为。反正配置SQL Express是为了停止空闲还是至少将时间窗口加宽到20分钟以上?或者我唯一的选择是编写一个服务,每15分钟轮询数据库以保持它的假脱机?

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

4 个答案:

答案 0 :(得分:8)

该行为无法配置。

您必须经常实现一种方法来轮询数据库。此外,与您链接的文章一样,将AUTO CLOSE属性设置为false。

答案 1 :(得分:3)

每隔几分钟这样一个简短的SQL查询就会阻止SQLserver进入空闲状态:

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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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

无论如何:我不知道sql表达空闲后的时间。我建议每10分钟运行一次脚本(可能是任务调度程序)。 这将阻止SQL Server Express进入空闲状态:

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

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