Re[3]: Расскажите об опциях рекордсета ADODB плиз.
От: wtr  
Дата: 20.08.06 11:49
Оценка:
Здравствуйте, 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, без индексов, тригеров, констрейнов, и проделаете это на ней. Полученное время, я думаю, будет приблизительно минимальным из достижимых для так сформулированой задачи
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.