Таблицы в памяти времени исполнения |
При включенном параметре DataBase.TempTablesInMem все таблицы, описанные в словаре как временные, автоматически начинают работать в памяти. Т.е. при открытии им передается режим fmMemory.
По умолчанию параметр включен. Системный администратор при отсутствии достаточного количества памяти на рабочей станции может отключить этот параметр.
Если на рабочей станции свободной памяти меньше некоторого порогового значения, то все временные таблицы будут открываться в БД, несмотря на наличие включенного параметра DataBase.TempTablesInMem.
DataBase.TempTablesInMem=on
При включенном параметре DataBase.UserTablesInMem все таблицы, описанные в словаре как пользовательские, автоматически начинают работать в памяти. Т.е. при открытии им передается режим fmMemory + fmAutoLoad + fmAutoFlush.
По умолчанию параметр включен. Системный администратор при отсутствии достаточного количества памяти на рабочей станции может отключить этот параметр.
DataBase.UserTablesInMem=on
При включенном параметре DataBase.ExternalInMem все внешние выгрузки начинают создаваться в памяти.
По умолчанию параметр включен. Системный администратор при отсутствии достаточного количества памяти на рабочей станции может отключить этот параметр.
Если на рабочей станции свободной памяти меньше некоторого порогового значения, то все внешние выгрузки будут открываться в БД, несмотря на наличие включенного параметра DataBase.ExternalInMem.
DataBase.ExternalInMem=on
При работе системы с включенными параметрами DataBase.TempTablesInMem, DataBase.UserTablesInMem, DataBase.ExternalInMem объем данных, обрабатываемых в памяти заранее не известен. В случае, когда приложение пытается использовать больше памяти, чем это доступно в операционной системе, это может привести к ошибкам, заканчивающимся аварийным завершение работы приложения.
Для предупрежления таких ошибок, а так же для случаев, когда помимо системы
на компьютере функционируют другие приложения, требовательные к ресурсам оперативной памяти, вводится настроечный параметр DataBase.MemFree. Данный параметр указывает количество оперативной (виртуальной) памяти в процентах от общего объема ОП, которая должна оставаться свободной.Алгоритм работы системы следующий: перед автоматическим открытием временных таблиц, пользовательских таблиц или внешних выгрузок как таблиц в памяти система проверяет наличие свободной оперативной памяти в соответсятвии с заданным параметром DataBase.MemFree. Если свободной памяти достаточно, то таблица открывается в памяти. В противном случае таблица открывается в БД. Стоит заметить, что при таком упрощенном алгоритме память все же может закончиться, так как последняя открываемая ТП может спокойно израсходовать все отстатки ОП. Однако параметр DataBase.MemFree позволяет подобрать такую величину свободной ОП, при которой система будет работать корректно.
Данный параметр не распространяется на ТП, использование которых явно прописано в коде. Поэтому явное использование ТП должно быть строго регламентировано.
По умолчанию значение этого параметра равно 20.