有没有办法阻止 SQL Express 2008 空闲?
Posted
技术标签:
【中文标题】有没有办法阻止 SQL Express 2008 空闲?【英文标题】:Is there a way to stop SQL Express 2008 from Idling? 【发布时间】:2009-02-23 21:00:27 【问题描述】:我使用 SQL Express 2008 作为 Web 应用程序的后端,问题是 Web 应用程序是在工作时间使用的,所以有时在午餐或休息时间,如果 20 分钟内没有用户登录,SQL Express 会进入空闲模式并释放其缓存。
我知道这一点,因为它记录了以下内容:
服务器在空闲 9709 秒后恢复执行
或
启动数据库 'xxxxxxx' 在事件日志中
我想避免这种闲置行为。无论如何配置 SQL Express 以停止空闲或至少将时间窗口扩大到超过 20 分钟?还是我唯一的选择是编写一个每 15 分钟轮询一次数据库以保持后台运行的服务?
在阅读了像 this 这样的文章后,它看起来并不乐观,但也许有人知道有黑客或注册表设置。
【问题讨论】:
【参考方案1】:这种行为是不可配置的。
您确实必须实现一种方法来每隔一段时间轮询数据库。另外,就像您链接到的文章所说,将 AUTO CLOSE 属性设置为 false。
【讨论】:
SQL Server 2017 Express 版是否也在几分钟后空闲?【参考方案2】:像这样每隔几分钟执行一次简短的 SQL 查询就可以防止 SQLserver 空闲:
SELECT TOP 0 NULL
FROM [master].[dbo].[MSreplication_options]
GO
【讨论】:
【参考方案3】:编写一个线程,每隔几分钟执行一次简单查询。在你的 global.asax Application_Start 中启动线程,你应该完成了!
【讨论】:
【参考方案4】:这里有一个很好的解释:https://blogs.msdn.microsoft.com/sqlexpress/2008/02/22/understanding-sql-express-behavior-idle-time-resource-usage-auto_close-and-user-instances/
随便:我不知道sql
express 空闲后的时间。我建议每 10 分钟运行一次下面的脚本(也许是任务调度程序)。
这将防止SQL
Server Express 空闲:
SELECT TOP 0 NULL FROM [master].[dbo].[MSreplication_options] GO
还要确保所有数据库的属性都设置为AUTO_CLOSE = FALSE
【讨论】:
很容易使用批处理脚本:\n以上是关于有没有办法阻止 SQL Express 2008 空闲?的主要内容,如果未能解决你的问题,请参考以下文章