Текущий архив: 2003.10.20;
Скачать: CL | DM;
Вниз
ADO, кто знает почему приложение тянет много памяти после запроса Найти похожие ветки
← →
Dima1 (2003-09-27 09:33) [0]Обьясните мне пожалуйста. Есть БД Access. В ней две таблицы всего. В этих таблицах простой текст, типа ФИО человека, адресс ну и еще некоторый текст, максимум до 300 символов примерно. В этой таблице уже порядка 350 записей. Как видите маленькая. Так вот вопрос. При даже простом поиске LOCATE - после того как найдена запись, я жму Ctr+ALT+Del и вижу что моя прога хавает порядка 11 метров памяти. (Windows XP)
Почему, так. И самое главное, что даже после удаления ADO обьем уменьшается только на 1- 1,5 метра. Как этого избежать. Ведь я искал всего одну запись, а потом еще и удалил ADO, а потребление всеравно большое. Обьясните и посоветуйте что я не так делаю.
В момент поиска LOCATE в SQL запросе выбрано всего одно поле, по которому ищу, тогда прога еще мало хавает. Но когда запись найдена и мне надо вынять все поля, вот тогда она становится прожорливаяя. и уже не уменьшается. Может какой то КЭШ надо както сбросить...
← →
sniknik © (2003-09-27 10:02) [1]все полностью на ответственности ADO и кэш и сброс его, причем срасывает не сразу а по истечении кокогото периода (а вдруг еше понадобится?), в общем оптимизация на скорость а не на экономию памяти.
кстати локейт по неиндексированому полю буферизирует всю таблицу (а скорее всего и больше, блок в которой таблица содержится (если помещается в один), так ему проше).
> Как этого избежать.
написать свое ADO.
← →
Dima1 (2003-09-28 14:26) [2]-> sniknik
Спасибо за ответ.
Но наверное со своим ADO у меня наврядли получится :( поэтому
похоже прийдется мирится с ним. А с индексированным полем, я попробую
← →
Виктор (2003-09-28 15:17) [3]Попробуй свойство Prepared у ADOQuery выставить в TRUE
Страницы: 1 вся ветка
Текущий архив: 2003.10.20;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.012 c