Большое потребление памяти
Добавлено: Пн 22 апр 2019 13:25
Версия 7.4.12
Имеем таблицу в MSSQL c 24-мя колонками и 7 млн. строк.
TUniTable
FetchAll := false;
FetchRows := 100;
SmartFetch.Enabled := true;
SmartFetch.LiveBlock := true;
KeyFields := 'ID'; // число DECIMAL(10)
При открытии таблицы (InternalOpen), компонент пытается считать в память все ключевые значения (еще до чтения строк с данными), но при этом в памяти выделяет место как-будто для всей строки (522 байта на строку данных). Естественно через некоторое время вываливается с ошибкой "out of memory". Это ожидаемое поведение?
Имеем таблицу в MSSQL c 24-мя колонками и 7 млн. строк.
TUniTable
FetchAll := false;
FetchRows := 100;
SmartFetch.Enabled := true;
SmartFetch.LiveBlock := true;
KeyFields := 'ID'; // число DECIMAL(10)
При открытии таблицы (InternalOpen), компонент пытается считать в память все ключевые значения (еще до чтения строк с данными), но при этом в памяти выделяет место как-будто для всей строки (522 байта на строку данных). Естественно через некоторое время вываливается с ошибкой "out of memory". Это ожидаемое поведение?