我已经阅读过某些关于SQL Express作为用户实例运行的内容..因此,如果不使用x时间,实例/服务“进入休眠状态”...(不知道实际的时间等)
所以场景是:
如果我的网站(在这种情况下)没有人在“几个小时”内使用它,那么SQL Express“似乎”就会入睡。
下次有人出现时(暂停一段时间后),初始响应需要花费几秒钟才能完成。
在最初的请求之后的后续请求看起来非常快......直到“几个小时”暂停或无论时间是什么时候?
有什么想法吗?如果是的话,有什么例子/指示做什么?
谢谢!
大卫。
答案 0 :(得分:1)
这不是数据库进入休眠状态,这是IIS中的应用程序池。如果没有用户连接/使用网站,则应用程序池将重置,会话将关闭。然后,当用户访问该网站时,必须重新启动该网站。
答案 1 :(得分:1)
有一个名为Database Warmup pal的术语,您可以找到更多here,这可能是您的解决方案
答案 2 :(得分:1)
是的,有一个所谓的RANU实例,这是你在连接字符串中指定User Instance=True
时得到的。在SQL Server 2005 Express Edition User Instances中详细了解相关内容。我建议你尽可能远离用户实例相关的任何内容。当出现问题时,它们无法调试和排除故障,它们有时会有一段时间来创建分钟的新实例,而它们在现实世界中确实没有任何优势。此外,它们在SQL Server Express 2008中已弃用。
如果您使用的是SQL Express 2008并且未在连接字符串中指定User Instance=True
,那么您不会获得用户实例,因此第一个请求时间可能来自IIS应用程序池预热,如其他人建议。它也可能由于普通的进程工作集磨损而导致SQL缓冲池变冷。您可以通过监视系统上的相应性能计数器来轻松识别它是IIS还是SQL。
答案 3 :(得分:0)
你确定数据库要睡觉而不是IIS吗? IIS将在一段时间不活动后卸载网站,并且重新加载速度非常慢。