Подскажите... как можно быстро затолкать в access базу порядка 350000 строк при помощи ADO.Net.
Пробовал через заполнение таблицы и последующем DataAdapter.UpDate() — 16 минут
Пробовал через INSERT INTO получил на минуту быстрее — 15 минут
А вот как это сделать быстрее мне не придумать...
Код реализующий это написанный и запущенный в access делает это же где то за 3 минуты.
Может есть какой способ из C# кода инициировать access базу выполнить в нутри себя код записанный заблоговременно???
Здравствуйте, erael, Вы писали:
E> Пробовал через INSERT INTO получил на минуту быстрее — 15 минут
Попробуй после создания команды вызвать Prepare. Получишь где-то 20% ускорения.
E> А вот как это сделать быстрее мне не придумать...
Попробуй добавлять в таблицу записи в транзакции по 500-1000 записей (с точным числом нужно экспериментировать). Получишь ускорение раз в пять.
E> Код реализующий это написанный и запущенный в access делает это же где то за 3 минуты.
В Access 350k записей? Может лучше сразу подумать об альтернативах?
E> Может есть какой способ из C# кода инициировать access базу выполнить в нутри себя код записанный заблоговременно???
Можно ещё попробовать добавлять с помощью INSERT INTO, но не по одной записи, а десятками/сотнями (тоже нужно экспериментировать) через UNION.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, wildwind, Вы писали:
E>>Подскажите... как можно быстро затолкать в access базу порядка 350000 строк при помощи ADO.Net. W>Самый быстрый способ — записать их в текстовый файл (если они уже не там), слинковать к базе как таблицу, и выполнить INSERT SELECT в целевую таблицу.
Честно говоря я не очень представляю как это можно .Net кодом реализовать...
Здравствуйте, erael, Вы писали:
E>Здравствуйте, wildwind, Вы писали:
E>>>Подскажите... как можно быстро затолкать в access базу порядка 350000 строк при помощи ADO.Net. W>>Самый быстрый способ — записать их в текстовый файл (если они уже не там), слинковать к базе как таблицу, и выполнить INSERT SELECT в целевую таблицу.
E> Честно говоря я не очень представляю как это можно .Net кодом реализовать...
Здравствуйте, erael, Вы писали:
E>Подскажите... как можно быстро затолкать в access базу порядка 350000 строк при помощи ADO.Net. E> Пробовал через заполнение таблицы и последующем DataAdapter.UpDate() — 16 минут E> Пробовал через INSERT INTO получил на минуту быстрее — 15 минут
E> А вот как это сделать быстрее мне не придумать... E> Код реализующий это написанный и запущенный в access делает это же где то за 3 минуты. E> Может есть какой способ из C# кода инициировать access базу выполнить в нутри себя код записанный заблоговременно???
Из С++ — ADO & ADOX. Наверное, в С# их тоже можно использовать (Connection, Recordset, Catalog, Command)
Здравствуйте, Stepkh, Вы писали:
E>>>>Подскажите... как можно быстро затолкать в access базу порядка 350000 строк при помощи ADO.Net. W>>>Самый быстрый способ — записать их в текстовый файл (если они уже не там), слинковать к базе как таблицу, и выполнить INSERT SELECT в целевую таблицу.
E>> Честно говоря я не очень представляю как это можно .Net кодом реализовать...
S>DAO?
S>