2010-09-09 5 views
0

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

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

единственным способ, которым я видел падение использования памяти, чтобы закрыть DB

+1

«Jet» не очень полезный тег, так как он чаще всего используется для Jet Red двигателя (один используется в MS Access), но и для не- MS и non-db. –

ответ

2

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

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

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

Смежные вопросы