Есть ли способ остановить SQL Express 2008 от Idling?

Я использую SQL Express 2008 в качестве бэкэнда для веб-приложения, проблема заключается в том, что веб-приложение используется в рабочее время, поэтому иногда во время обеда или времени перерыва, когда нет пользователей, вошедших в систему на 20-минутный период. SQL express будет перейдите в режим ожидания и освободите его кеш.

Я знаю об этом, потому что он записывает что-то вроде:   Сервер возобновил выполнение после простоя 9709 секунд или   Запуск базы данных "xxxxxxx" в журнале событий

Я хотел бы избежать этого неактивного поведения, так или иначе, чтобы сконфигурировать SQL express, чтобы остановить холостой ход или, по крайней мере, расширить окно времени дольше 20 минут. Или мой единственный вариант написать службу, которая каждые 15 минут опросит db, чтобы сохранить ее намотанной?

После прочтения таких статей, как это, он не выглядит многообещающим, но, возможно, есть хак или реестр, о которых кто-то знает.

Ответ 1

Это поведение не настраивается.

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

Ответ 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 простаивает. Я предлагаю запустить script каждые 10 минут (возможно, планировщик задач). Это предотвратит простоя sql Server Express:

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

Также убедитесь, что для всех свойств баз данных установлено значение AUTO_CLOSE = FALSE