locked
Как ускорить копирование на Mobile Device (C#, SQL Compact) RRS feed

  • Вопрос

  • Есть две базы SQL Compact источник и получатель , копируются одна в другую так

    DB - класс взаимодействия БД. Подскажите, как можно ускорить insert по записям... DB основан на SqlCeDataAdapter

    Выдран пример

    foreach (DataRow RowStep in SQLreportDB.Rows)
    {
    DB.ExecuteDataTable("insert into [spisok.change] (code_t, code_skl, price_old, price_new, timestamp, proizv) " +
              "values (@code_t, @code_skl, @price_old, @price_new, @timestamp, @proizv)",
    new SqlCeParameter[] 
    { 
    new SqlCeParameter("@code_t", RowStep["code_t"]),
    new SqlCeParameter("@code_skl", RowStep["code_skl"]), 
    new SqlCeParameter("@price_old", RowStep["price_old"]),
    new SqlCeParameter("@price_new", RowStep["price_new"]),
    new SqlCeParameter("@timestamp", RowStep["timestamp"]),
    new SqlCeParameter("@proizv", RowStep["proizv"])
    });
    }
    

    4 февраля 2011 г. 9:15

Ответы

  • можете попробовать 

    сконструировать 1 длинный большой запрос на insert (много insert в 1 sqlCommand)

    затем 1 раз его выполнить,

    так уменьшаться накладные расходы на отдельное выполнение инсерта на каждую строку

    • Помечено в качестве ответа Abolmasov Dmitry 5 февраля 2011 г. 12:09
    4 февраля 2011 г. 10:25
  • А в реализации метода ExecuteDataTable, случаем, не создается каждый раз новая транзакция? Может, попробовать выполнять все операции INSERT в одной транзакции?
    • Помечено в качестве ответа Abolmasov Dmitry 5 февраля 2011 г. 12:09
    4 февраля 2011 г. 10:26

Все ответы

  • можете попробовать 

    сконструировать 1 длинный большой запрос на insert (много insert в 1 sqlCommand)

    затем 1 раз его выполнить,

    так уменьшаться накладные расходы на отдельное выполнение инсерта на каждую строку

    • Помечено в качестве ответа Abolmasov Dmitry 5 февраля 2011 г. 12:09
    4 февраля 2011 г. 10:25
  • А в реализации метода ExecuteDataTable, случаем, не создается каждый раз новая транзакция? Может, попробовать выполнять все операции INSERT в одной транзакции?
    • Помечено в качестве ответа Abolmasov Dmitry 5 февраля 2011 г. 12:09
    4 февраля 2011 г. 10:26