我使用SQL Express 2008作为Web应用程序的后端,问题是Web应用程序在工作时间使用,所以有时在午餐或休息时间没有用户登录20分钟时间SQL Express将进入空闲模式并释放其缓存。
我知道这一点,因为它记录的内容如下:
服务器在空闲9709秒后恢复执行
或
启动数据库'xxxxxxx' 在事件日志中
我想避免这种闲散行为。反正配置SQL Express是为了停止空闲还是至少将时间窗口加宽到20分钟以上?或者我唯一的选择是编写一个服务,每15分钟轮询数据库以保持它的假脱机?
在阅读this之类的文章后,它看起来并不乐观,但也许有人知道的黑客或注册表设置。
答案 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)
无论如何:我不知道sql
表达空闲后的时间。我建议每10分钟运行一次脚本(可能是任务调度程序)。
这将阻止SQL
Server Express进入空闲状态:
SELECT TOP 0 NULL FROM [master].[dbo].[MSreplication_options] GO
还要确保所有数据库的属性都设置为AUTO_CLOSE = FALSE