代码之家  ›  专栏  ›  技术社区  ›  Element

有没有办法阻止SQL Express 2008处于空闲状态?

  •  7
  • Element  · 技术社区  · 16 年前

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

    我知道这是因为它记录了如下内容:

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

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

    我想避免这种懒散的行为。是否仍要将SQL Express配置为停止空闲,或者至少将时间窗口扩大到20分钟以上?或者,我唯一的选择是编写一个每隔15分钟轮询一次数据库的服务来保持它的假脱机状态?

    读完像这样的文章 this 这看起来不太有希望,但可能有人知道的黑客或注册设置。

    4 回复  |  直到 7 年前
        1
  •  8
  •   ChrisLively    16 年前

    这种行为是不可配置的。

    您确实需要实现一个方法来每隔一段时间轮询一次数据库。另外,像您链接到的文章所说的那样,将auto close属性设置为false。

        2
  •  3
  •   Knut Holm    10 年前

    每隔几分钟进行一次这样的简短SQL查询,将防止SQLServer空闲:

    SELECT TOP 0 NULL
      FROM [master].[dbo].[MSreplication_options]
    GO
    
        3
  •  2
  •   Brandon    16 年前

    每隔几分钟编写一个执行简单查询的线程。启动global.asax应用程序中的线程,然后就可以完成了!

        4
  •  0
  •   Gynteniuxas hrboy    9 年前

    下面是一个很好的解释: 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 服务器Express从空闲开始:

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

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