Я использую SQL Server CE в качестве базы данных в своем приложении C # WinForm, мое приложение собирает прокси с различных веб-сайтов и вставляет в таблицу SQL Server CE только один столбец.
Таблица прокси:
- IP-адрес
Но, похоже, при каждой вставке потребление памяти медленно увеличивается, приложение запускается с 11 000 памяти, к тому времени, когда она достигает 1 000 000, использование памятисоставляет около 87 000, и запросы становятся очень медленными, что плохо для моего приложения, изначально я думал, что есть утечка памяти, но не мог ее найти, вот мой код для вставки.
public void InsertData(DemoTable _table)
{
string strInsertQuery = string.Format("INSERT INTO DemoTable (Value) VALUES ({0})", _table.Value);
using (connection = new SqlCeConnection(connectionString))
{
connection.Open();
using (command = connection.CreateCommand())
{
command.CommandText = strInsertQuery;
command.ExecuteNonQuery();
}
}
}
Этонормально для SQL Server CE или что-то не так с моим приложением, я также пытался принудительно собирать мусор, но безрезультатно.
Мое приложение будет собирать максимум 1 миллион прокси, процесс сбора очень быстрый, около 500 до1700 прокси в секунду, я отображаю их, используя виртуальный режим подкачки DataGridView
, поэтому все собранные прокси видныпользователь, но использующий пейджинг, но я не могу получить такую же производительность из базы данных SQL Server CE, она не поспевает за другим процессом.
Подскажите, пожалуйста, есть ли у меня альтернатива SQL Server CE?, который идеально подходит для этого типа работы, или каким-либо образом я могу не отставать от быстрого процесса уборки урожая?