Как ограничить использование памяти с помощью Extensible Storage Engine (JetBlue)?

У меня есть приложение, которое очень часто попадает в базу данных ESE довольно сильно, а затем останавливается на долгое время. После попадания в базу данных использование памяти увеличивается (более 150 МБ) и остается на высоком уровне. Я предполагаю, что ESE имеет много кэшированных данных.

Есть ли способ ограничить использование памяти ESE? Я счастлив перенести любой перфорированный удар

единственный способ уменьшить использование памяти - закрыть БД

1 ответ

Решение

Вы можете контролировать размер кэша базы данных, установив системный параметр размера кэша базы данных (JET_paramCacheSize). Это число может быть изменено на лету.

Вам, возможно, не потребуется устанавливать его: по умолчанию ESENT будет управлять размером кеша автоматически, просматривая доступную системную память, системный пейджинг и загрузку базы данных. Если у вас есть сотни МБ свободной памяти, то ESENT не увидит никаких причин для уменьшения размера кэша. С другой стороны. если вы начнете использовать память в своей системе, вы обнаружите, что ESENT автоматически уменьшит размер кэша базы данных в вашем приложении. Вы можете установить ограничения для автоматического определения размера кэша с помощью параметров JET_paramCacheSizeMin и JET_paramCacheSizeMax.

Ссылка на документацию для параметров системы: http://msdn.microsoft.com/en-us/library/ms683044.aspx

Другие вопросы по тегам