У меня есть JSON-файл с ~ 25-30 КБ элементов, которые я хочу сохранить в базе данных sqlite.Однако время, необходимое классу SQLiteDataAdapter для обновления базы данных с помощью объекта DataTable, содержащего все элементы, составляет около 35 минут для 15-килобайтных элементов.Производительность выполняемых обновлений ограничена UpdateBatchSize, который в моем случае равен 1, и когда я пытаюсь изменить его, я получаю исключение, которое говорит: «Указанный метод не поддерживается».
Вот метод Update:
public async Task<bool> SaveTable()
{
SQLiteDataAdapter data_adapter = null;
try
{
data_adapter = new SQLiteDataAdapter(sql_cmd);
data_adapter.UpdateBatchSize = 10;
}
catch (Exception e)
{
Console.WriteLine("Exception Thrown: " + e.Message);
return false;
}
try
{
SQLiteCommandBuilder cmd_bldr = new SQLiteCommandBuilder(data_adapter);
data_adapter.InsertCommand = cmd_bldr.GetInsertCommand();
Console.WriteLine(data_adapter.InsertCommand.CommandText);
data_adapter.AcceptChangesDuringUpdate = true;
data_adapter.UpdateCommand = data_adapter.InsertCommand;
}
catch (Exception e)
{
Console.WriteLine("Exception Thrown: " + e.Message);
return false;
}
try
{
var size = data_adapter.UpdateBatchSize;
Console.WriteLine("Updating Table. Batch Size: " + size);
var rows_updated = data_adapter.Update(data_table);
Console.WriteLine("Rows Updated: " + rows_updated.ToString());
data_adapter.Dispose();
}
catch(Exception e)
{
Console.WriteLine("Exception Thrown: " + e.Message);
return false;
}
return true;
}
Есть ли способ изменить UpdateBatchSize или увеличить количество обновлений в секунду?