Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

insufficient memory при большом числе обращений к БД   Найти похожие ветки 

 
data ©   (2004-08-25 17:22) [0]

Не сталкивался ли кто-нибудь со следующей проблемой:
приложение обращается к БД на чтение и добавление новых записей с частотой неск. раз в секунду. Когда общее число обращений приближается к 100 000 на очередном обращении вылетает ошибка insufficient memory to this operation, после этого такие ошибки начинают возникать при обращениях все чаще и чаще (абсолютно те же запросы до ошибки обрабатывются нормально), затем возникают при любом обращении и приложение падает. Иногда с ним падает и БДЕ. Выводила статистику (логи) по открытым-закрытым select - вроде все закрываются. Prepare - Unprepere тоже не помогает.
в http://bdn.borland.com/article/0,1410,25294,00.html написано поменять параметры в БДЕ. Да правильно, после их увеличения приложение живет дольше, но эффект все равно остается.
в http://bdn.borland.com/article/0,1410,21725,00.html вообще об утечке памяти. Все понятно, но как же побороть то :(? Может кто уже боролся?


 
data ©   (2004-08-25 17:24) [1]

Да, забыла еще написать, что при работе приложения с FireBird такого эффекта нет, нормально догонялись до 2 млн. записей, все было Ок.


 
Romkin ©   (2004-08-25 17:38) [2]

А так вы к чему обращаетесь?


 
saNat ©   (2004-08-25 17:41) [3]

Я сталкивался с данным сообщением при написании приложения в Delphi и запущенным SQL Explorer. После закрытия последнего можно было работать дальше без перезагрузки системы.
А SQL Explorer запускал заново
С уважением...


 
data ©   (2004-08-25 17:49) [4]

Romkin ©   (25.08.04 17:38) [2]
не совсем поняла вопрос:)
работаем через БДЕ.
Обращения идут частые на селект всего из одной таблицы. Запрос с параметром выбирает либо одну запись, либо ничего, таблица небольшая.
Запрос на внесение новых записей идет в другую таблицу, громадную.
Еще периодически идут запросы на выборку данных не из главного треда, а из других, но там вроде все нормально сделано: отдельная сессия. Выборка там из совершенно других таблиц.


 
data ©   (2004-08-25 17:52) [5]

saNat ©   (25.08.04 17:41) [3]
да, вполне возможно, т.к. такое сообщение возникает при большом количестве открытых Query или курсоров. a Explorer тоже как бы что-то открывает.
Проблема в том, что я закрываю запросы, но память все равно не освобождается.


 
jack128 ©   (2004-08-25 20:20) [6]

data ©   (25.08.04 17:49) [4]
Romkin ©   (25.08.04 17:38) [2]
не совсем поняла вопрос:)
работаем через БДЕ.

с чем работаете? Парадокс, dbf, ib ??


 
Aleksandr.   (2004-08-25 20:40) [7]

Я тут немного ниже задавал вопрос по той же проблеме - в многопоточном приложении, где каждый поток юзает БДЕ, возникала такая трабла. И мне дали ответ, что следует прирастить параметры БДЕ-админа:
Configuration\System\INIT: MAXBUFSIZE, MAXFILEHANDLES, SHAREDMEMSIZE.
Я их прирастил - сайзы загнал по 8192, а кол-во файлов - количество потоков +1. И все заработало в ажуре.


 
Aleksandr.   (2004-08-25 20:41) [8]

ЗЫ. совет давал Rusa.


 
data ©   (2004-08-26 10:29) [9]

Aleksandr.  
работаем с Оракл
когда приращиваю параметры в админе, то время жизни просто увеличивается пропорционально, эффект остается.

ночной прогон показал, что дело было в постоянных селектах (раз 5-10) в секунду, которые правда корректно открываются и закрываются. Буду пытаться что-то с ними крутить (может уберу вовсе), получится - напишу.


 
Sergey13 ©   (2004-08-26 10:41) [10]

2[9] data ©   (26.08.04 10:29)
>Prepare - Unprepere тоже не помогает.
>ночной прогон показал, что дело было в постоянных селектах (раз 5-10) в секунду
А текст формируется динамически или используются параметры? Не первышается ли количество одновременно открытых курсоров на сервере (хотя это вряд ли - ошибка была бы другая вроде)?


 
data ©   (2004-08-26 10:53) [11]

Sergey13 ©  
текст один и тот же, запрос создан в дизайн тайме с постоянным текстом и параметром.
Схема такая: назначаем параметр, открываем, смотрим необходимое, закрываем. Все из главного треда, но 5-10 раз за секунду.
Наверное какая-то память просто не успевает освободиться ИМХО. Сейчас попробую делать для Query этого Create-Free в рантайме для каждого обращения и еще c Prepare-Unprepare покручу


 
Sergey13 ©   (2004-08-26 10:56) [12]

А если это в ХП засунуть?



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
14-1094333223
Ihor Osov'yak
2004-09-05 01:27
2004.09.26
Утечка памяти?


3-1094007540
HMT
2004-09-01 06:59
2004.09.26
Обновление содержимого blob.


14-1094190998
Аноним
2004-09-03 09:56
2004.09.26
Посоветуйте книгу


4-1092506457
bit
2004-08-14 22:00
2004.09.26
Межпрограммный интерфейс


1-1094724867
Pashkerton
2004-09-09 14:14
2004.09.26
Mutex handle