sql 2008在第一次请求时表示速度慢?去睡觉?

时间:2010-11-04 09:12:08

标签: sql database sql-server-2008 sql-server-express

我已经阅读过某些关于SQL Express作为用户实例运行的内容..因此,如果不使用x时间,实例/服务“进入休眠状态”...(不知道实际的时间等)

所以场景是:

  1. 如果我的网站(在这种情况下)没有人在“几个小时”内使用它,那么SQL Express“似乎”就会入睡。

  2. 下次有人出现时(暂停一段时间后),初始响应需要花费几秒钟才能完成。

  3. 在最初的请求之后的后续请求看起来非常快......直到“几个小时”暂停或无论时间是什么时候?

  4. 有什么想法吗?如果是的话,有什么例子/指示做什么?

    谢谢!

    大卫。

4 个答案:

答案 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将在一段时间不活动后卸载网站,并且重新加载速度非常慢。