Форум: "Базы";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
ВнизРастут затраты памяти Найти похожие ветки
← →
Ик сик (2003-03-24 15:13) [0]При работе с ADODataset, ADOCommand, ADOQuery растут затраты занимаемой памяти. В какой-то момент затраты оперативки снижаются и повышаются затраты виртуальной памяти. Есть ли какая-нибудь возможность этого избежать.
Даже при удалении соотв. объектов память не освобождается.
← →
Mystic (2003-03-24 15:23) [1]Посмотри AllocMemCount и AllocMemSize.
Если также увиличиваются - значит утечка памяти в Delphi-коде. Иначе это происки ADO.
← →
Ик сик (2003-03-24 15:55) [2]Не увеличиваются.
Неужели ничего нельзя с этим сделать? Как-то очистить виртуальную память?
← →
blackman (2003-03-24 16:01) [3]1.Не работать в WIN95 и WIN98.
2.Не тащить все таблицы подряд.
3.Не открывать по 100 раз, если можно 1 ...
← →
Ик сик (2003-03-24 16:10) [4]1. Работаю в Win2K
2. Работаю с одной таблицей
3. Открываю соединение только один раз, потом посылаю разные запросы.
← →
Mystic (2003-03-24 16:10) [5]Тогда смотри методы ADO, есть ли там чего полезного... Если нет, то сомневаюсь, чтобы что-либо можно было сделать.
← →
Ик сик (2003-03-24 16:35) [6]:(((
За 4 часа работы - 17mb
Пришлось написать вторую программу для перезапуска первой.
← →
blackman (2003-03-24 16:42) [7]>Ик сик
Значит не ADO, проверь разные запросы...
← →
Ик сик (2003-03-24 16:50) [8]
> blackman
Со всеми запросами тоже самое, просто у меня к БД обращение очень интенсивное, в ином случае я бы и не заметил.
Хочешь, если время есть, попробуй. Запихни в цикл 10000 запросов и посмотри в Task Manager как VM увеличилась.
← →
sniknik (2003-03-24 17:05) [9]Ик сик (24.03.03 16:50)
а какая у тебя дельфя? и версия ADO?
была у меня подобная проблема (похожая, с каждым запросом росла память и количество Дескрипторов, в диспетчере задач смотрел, до полного зависания), прошло само собой после какогото апгрейда (ADO,Delphi,Win2000) чего было до сих пор не знаю, повторить не получается.
код который это вызывал сохранил. (цикл на SQL, запрос к линк серверу, через ADO - Jet) запушеный на Query Analizer-е вызывал тоже самое.
Ик сик (24.03.03 16:35)
> Пришлось написать вторую программу для перезапуска первой.
зря, достаточно пересоздать ДатаМодуль. (мне помогало)
← →
Ик сик (2003-03-24 17:15) [10]Delphi 6, версия ADO 2.5,
DataModule.Free не освобождало памяти.
Я сейчас с работы убегаю. Завтра вас дораспрашиваю.
Спасибо.
← →
Ик сик (2003-03-25 14:22) [11]У кого-нибудь есть какие-нибудь идеи? Странная такая вещь.
← →
sniknik (2003-03-25 14:59) [12]сделай такую вещь
1 создаеш линкед сервер (работает с использованием ADO)
EXEC sp_addlinkedserver
@server = "MYDBFs",
@provider = "Microsoft.Jet.OLEDB.4.0",
@srvproduct = "OLE DB Provider for Jet",
@datasrc = "D:\",
@provstr = "dBASE IV"
и выполняеш простенький код (все без участия дельфей, в квери анализере) таблицу естественно свою подставь (размер и количество полей неважно, с разными пробовал, результат одинаковый)
DECLARE @i int
SET @i = 1
WHILE @i < 1000 BEGIN
IF EXISTS (SELECT * FROM sysobjects WHERE (name = N"CashSail"))
BEGIN
INSERT INTO CashSail SELECT * FROM mydbfs...CashSail
END ELSE BEGIN
SELECT * INTO CashSail FROM mydbfs...CashSail
CREATE INDEX CashIndex ON CashSail (CashNumber)
CREATE INDEX ZIndex ON CashSail (ZNumber)
END
SET @i = @i + 1
PRINT @i
END
внимательно смотри на память и дескрипторы, если будут непрерывно расти и в итоге получиш следующую ошибку, то помогут только глобальные апдейты.
Server: Msg 7399, Level 16, State 1, Line 6
OLE DB provider "Microsoft.Jet.OLEDB.4.0" reported an error. The provider did not give any information about the error.
← →
Ик сик (2003-03-25 15:07) [13]А что такое линкед сервер и квери анализер? :)))
← →
sniknik (2003-03-25 15:42) [14]Сорри, я думал ты знаком с MSSQL сервером. Если нет то такой способ проверки не годится.
линкед сервер - прилинкованая база к MSSQL из внешнего источника (любой OLE DB провайдер)
квери анализер - тулза из поставки, можно запросы делать.
(Delphi не единственная ADO использует)
← →
Ик сик (2003-03-25 15:45) [15]Да, я никак MSSQL не поставлю, пока с Access работаю :(
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c