Hello, if you are using System.Data.Sqlite, please post your question to their forum: http://sqlite.phxsoftware.com/forums/
<http://sqlite.phxsoftware.com/forums/>if you don't use this lib, I strongly recommend it to you. and my view on your problem is that you don't call dispose on the "command" object: using( DbCommand c = m_conn.CreateCommand() ) { .... c.ExecuteNonQuery } keep only a command as a member if it is "prepared" (->prepared statement). Best regards, Sylvain On Wed, Apr 21, 2010 at 10:50 PM, Radcon Entec <radconen...@yahoo.com>wrote: > Greetings! > > I have a Windows service application written in C# using Visual Studio 2008 > that uses the ADO.Net 2.0 provider for SQLite downloaded from SourceForge. > The application writes one row consisting of three values to each of 124 > SQLite databases once a minute. The service uses the > SQLiteDatabase.ExecuteNonQuery() method to write the data into the > databases. As services usually are, this one is designed to run forever. > The problem is that it slowly increases memory consumption. When it > starts, Task Manager reports that it uses 34 megabytes of memory. That > number goes up by about 3 megabytes per hour. > > When I comment out the call to ExecuteNonQuery(), the memory consumption of > the service remains constant. > > This behavior is not acceptable. I can't have a service whose memory > footprint grows without limit, no matter how slowly it grows. I would have > expected that the amount of memory consumed by my application before the > call to ExecuteNonQuery() would be nearly the same is the amount consumed > after the call finishes, with possibly some difference because I can't be > sure when C#'s garbage collection will do its work. What am I doing wrong? > Is this a problem in the provider? Is this a problem with SQLite itself? > Should I be using ADO .Net more correctly? > > Here's the function: > > public int Execute(string query) > { > int rowsAffected; > > if (m_command == null) > { > System.Data.SQLite.SQLiteException ex = new > SQLiteException("Attempt to execute a query on a closed or broken > database."); > throw ex; > } > m_command.CommandType = CommandType.Text; > m_command.CommandText = query; > rowsAffected = 0; > // rowsAffected = m_command.ExecuteNonQuery(); > return rowsAffected; > } > > Thanks for your help! > > RobR > > > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users