Здравствуйте, maxidroms, Вы писали:
M>или так...разница не большая
M>//Цикл из 5000 итераций
M>lpConn->Execute(_bstr_t("Insert into table...."),0,ADODB::adCmdText);
M>//Конец цикла из 5000 итераций
Можете попробовать еще так
ArrayList sql = new ArrayList();
for (int step=0;step<540;step++)
{
sql.Add(String.Format("INSERT INTO tbl1(fld1, fld2) VALUES({0}, 'value {0}')", step));
if (sql.Count >= 100)
{
executeSql(String.Join(";", sql.ToArray(typeof(string)) as string[]));
sql.Clear();
}
}
if (sql.Count > 0)
executeSql(String.Join(";", sql.ToArray(typeof(string)) as string[]));
или так
ArrayList sql = new ArrayList();
for (int step=0;step<540;step++)
{
sql.Add(String.Format("SELECT {0}, 'value {0}'", step));
if (sql.Count >= 100)
{
execSql("INSERT INTO tbl1(fld1, fld2) " + String.Join(" UNION ", sql.ToArray(typeof(string)) as string[]));
sql.Clear();
}
}
if (sql.Count > 0)
execSql("INSERT INTO tbl1(fld1, fld2) " + String.Join(" UNION ", sql.ToArray(typeof(string)) as string[]));
создайте новую таблицу tbl1, без индексов, тригеров, констрейнов, и проделаете это на ней. Полученное время, я думаю, будет приблизительно минимальным из достижимых для так сформулированой задачи