У нас есть мощный 64-битный сервер Windows 2008 x 4 (4 х 4 ядра, 32 ГБ ОЗУ), работающий под управлением SQL Server 2005. У нас есть небольшая (6 ГБ), но очень важная база данных, доступ к которой несколько замедлен до тех пор, пока страницы не будут кэшированы в памяти (использование очень много случайных операций ввода-вывода, поэтому шансы очень низкие, данная страница находится в памяти и конечных пользователей пожаловаться на начальную медлительность). Диски достаточно быстрые (локальный 15K SAS), но я полагаю, что приложение написано несколько неуклюже (это решение COTS), поэтому мне интересно, есть ли способ «принудительного» размещения базы данных в памяти в SQL Server 2005 (2008 не поддерживается вендором, так что нам пока не стоит переходить на это), чтобы избежать первоначального блюза, заполняющего кеш?
Мой текущий метод состоит в том, что я запускаю SELECT * из каждой таблицы в скрипте, чтобы получить страницы данных в памяти, но некоторые объекты (индексы, полнотекстовый поиск и т. Д.) Не кэшируются этим методом (и модифицирую скрипт для опроса индексов и написать соответствующие пункты WHERE для кэширования - это комплекс кипения океана).