Отключить кеширование Sql 2008? - PullRequest
4 голосов
/ 24 мая 2009

У меня есть приложение, которое выполняет разные запросы с разными результатами, поэтому кэширование в моем случае вредно.

Это означает, что нет общих данных, которые sql может использовать для извлечения результата из памяти напрямую вместо доступа к жесткому диску.

Ответы [ 3 ]

2 голосов
/ 24 мая 2009

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

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

Во-вторых, очень маловероятно, что SQL, использующий этот объем памяти, приведет к снижению производительности действительно случайного невидимого запроса. Если для получения какой-либо информации SQL Server требуется перейти на диск, то объем используемой памяти едва уместен.

Однако можно уменьшить объем памяти, используемый SQL Server. (Я не знаю, где находится опция в SQL 2008, но я предполагаю, что она довольно похожа). В Management Studio щелкните правой кнопкой мыши по Серверу и выберите Свойства. Там у вас будет страница для памяти. Здесь вы можете выбрать минимальное и максимальное значения, которые будет использовать SQL. Это будет эффективно ограничивать любое кэширование, которое sql делает, основываясь на ваших значениях, а не на ограничениях физических серверов.

Я действительно не думаю, что вы увидите какой-либо прирост производительности. По моему опыту, SQL всегда лучше всего делать самостоятельно.

1 голос
/ 24 мая 2009

Ваш вопрос неверен: кэширование означает, что данные находятся в памяти и не позволяют получить доступ к диску.

В любом случае, кеширование SQL Server не вредно. Для педантов всегда есть исключения, но вам нужно было серьезно испортить код и конфигурацию, прежде чем это было.

0 голосов
/ 24 мая 2009

Выключение (или попытка выключить) кэширования SQL Server полностью решает проблему. Если данные кэшируются на уровне вашего уровня данных, вы должны обновить их там. SQL Server никогда не будет обслуживать устаревшие данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...