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

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

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

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

.

1 Ответ

2 голосов
/ 19 сентября 2010

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

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

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

...