SQL 2008 Экспресс медленно по первому запросу?Ложится спать? - PullRequest
3 голосов
/ 04 ноября 2010

Я где-то читал о SQL Express, работающем как пользовательский экземпляр или что-то в этом роде ... и, как таковой, экземпляр / служба "переходит в спящий режим", если не используется в течение x времени ... (не знаю фактического времени и т.д.)

Итак, сценарий:

  1. Если на моем веб-сайте (в данном случае) никто не использует его в течение «нескольких часов», SQL Express «кажется,« переходит в спящий режим ».

  2. В следующий раз, когда кто-нибудь придет (после паузы на долгое время), первоначальный ответ займет еще несколько секунд.

  3. Последующие запросы сразу после первоначального выглядят очень быстрыми ... опять же, пока не наступит пауза "на несколько часов" или в какое бы то ни было время?

Есть идеи? если да, то какие примеры / указания что делать?

Спасибо!

Дэвид.

Ответы [ 4 ]

1 голос
/ 04 ноября 2010

Да, есть так называемый экземпляр RANU, который вы получите, указав User Instance=True в строке подключения.Подробнее об этом читайте в пользовательских экземплярах SQL Server 2005 Express Edition .Я бы порекомендовал вам оставаться как можно дальше от всего, что связано с пользовательскими экземплярами.Их невозможно отладить и устранить неисправности, когда что-то идет не так, у них иногда есть время для создания нового экземпляра минут , и они действительно не дают никаких преимуществ в реальном мире.Кроме того, они устарели в SQL Server Express 2008.

Если вы используете SQL Express 2008 и не указываете User Instance=True в строке подключения, тогда вы не получите пользовательский экземпляр, поэтому, вероятно, первыйвремя запроса приходит из разогрева пула приложений IIS, как и предполагали другие.Это также может произойти из-за обычного истощения рабочего набора процессов, из-за которого буферные пулы SQL стали холодными.Вы можете легко определить, является ли это IIS или SQL, отслеживая соответствующие счетчики производительности в вашей системе.

1 голос
/ 04 ноября 2010

Это не база данных, которая собирается спать, это пул приложений в IIS.Если ни один пользователь не подключен / не использует веб-сайт, то пул приложений будет сброшен, а сеанс (ы) завершится.Затем, когда пользователь заходит на сайт, он должен перезапустить сайт.

1 голос
/ 04 ноября 2010

Существует термин под названием Database Warmup pal, вы можете узнать больше здесь и, вероятно, это ваше решение

0 голосов
/ 04 ноября 2010

Вы уверены, что база данных собирается спать, а не IIS? IIS будет выгружать веб-сайты после определенного периода бездействия, и их загрузка может быть очень медленной.

...