Может кто-то помочь мне ускорить это. У меня есть набор данных (из файла csv), называемый dsresult, и я хочу перекачать его в таблицу firebird. В настоящее время я делаю это по 1 строке за раз, но я бы предпочел сделать это в партиях по 500 рядов. Я использую поставщик firebird.netFirebird dotnet batch inserts
string connectionString = "ServerType=1;User=SYSDBA;Password=masterkey;Dialect=3;Database=MYDB.FDB";
string sql = "INSERT INTO POSTIN (NUMID, CHANGE, PLACENAME, BOXCODE, STRCODE, TOWN) VALUES (@NUMID, @CHANGE, @PLACENAME, @BOXCODE, @STRCODE, @TOWN)";
FbConnection conn = new FbConnection(connectionString)
FbCommand command = new FbCommand(sql, conn);
foreach (DataRow r in dsResult.Tables[0].Rows)
{
command.Parameters.AddWithValue("@NUMID", r["NUMID"]);
command.Parameters.AddWithValue("@CHANGE", r["CHANGE"]);
command.Parameters.AddWithValue("@PLACENAME", r["PLACENAME"]);
command.Parameters.AddWithValue("@BOXCODE", r["BOXCODE"]);
command.Parameters.AddWithValue("@STRCODE", r["STRCODE"]);
command.Parameters.AddWithValue("@TOWN", r["TOWN"]);
command.ExecuteNonQuery();
}
он принимает aaaaaaaaaaages для запуска. в delphi я бы только что запустил cachedupdates. разместить 500 записей в то время и фиксации на 500th
Благодарности
Вы пробовали поместить все это в сделку? –
нет, любые указатели на то, как это сделать? – Crudler