У меня есть таблица, которая содержит 350632 записей в настоящее время. Я недавно добавил новый столбец в таблицу, которую я пытаюсь заполнить с помощью этого кода в C#:SQLite UPDATE performance
List<int> listOfInts = new List<int>();
dbConnect.Open();
int counter = 1;
string toExecute = "select * from tempwords";
string insertQuery = "update tempwords set [email protected]";
using (SQLiteTransaction transaction = dbConnect.BeginTransaction())
{
using (SQLiteCommand newCommand = new SQLiteCommand(toExecute, dbConnect))
{
using (SQLiteDataReader reader = newCommand.ExecuteReader())
{
while (reader.Read())
{
listOfInts.Add(counter);
counter++;
}
}
}
transaction.Commit();
dbConnect.Dispose();
}
Console.WriteLine(listOfInts.Count.ToString());
dbConnect.Open();
int iterator = 0;
using (SQLiteTransaction transactionx = dbConnect.BeginTransaction())
{
using (SQLiteCommand command = new SQLiteCommand(insertQuery, dbConnect))
{
command.Transaction = transactionx;
while (iterator <= listOfInts.Count - 1)
{
command.Parameters.AddWithValue("@toInsert", listOfInts[iterator]);
command.ExecuteNonQuery();
iterator++;
Console.WriteLine((iterator + 1).ToString() + Environment.NewLine);
}
}
transactionx.Commit();
dbConnect.Dispose();
}
Я думаю, что логика в порядке, и все это будет сделано правильно, но обновление настолько медленно (даже хотя у меня есть индекс в столбце rownum). Есть ли способ ускорить его до некоторого реалистического времени?
Заранее спасибо.
У тебя проблемы с производительностью, вероятно, из-за завершения 350000+ заявления обновления , Если вы можете выполнить пакетную проверку своего оператора обновления, это будет намного быстрее. – Kritner
Можете ли вы дать совет о том, как это сделать (я действительно пытался, но я не могу заставить его работать)? – Matsura
Ваш новый столбец, какие типы ценностей он получает? это просто прибавочная стоимость? – Kritner