Как я могу предотвратить чрезмерное использование памяти, которое вызывает TFDQuery при работе приложения с TIdTcpServer?
я создаю TFDQuery во время выполнения и после использования уничтожаю его при событии OnExecute в TIdTcpServer:
Query := TFDQuery.Create(Cn);
Query.Connection := Cn;
Query.SQL.Text := 'update table set column = 0 where ip = :ip';
Query.Params.ParamByName('ip').Value := ip;
Query.ExecSQL;
FreeAndNil(Query);
каждое новое соединение выполняет выбор / вставку / обновление в MSSQL, поэтому я всегда создаю / уничтожаю объект, но память все еще увеличивается (я тестирую с клиентом, который создает различные соединения в TcpServer)
я уже протестировал, и если я удаляю TFDQuery из памяти приложения OnExecute, то всегда будет в порядке на тестах.
cn
- это TFDConnection, которые всегда активны и создаются при запуске приложения и уничтожаются при закрытии приложения.