Название: Запись целой таблицы в бд Отправлено: Danila_Bagrofff от Апрель 03, 2013, 12:57 Подскажите, мне нужно передать целую таблицу данных в базу данных.
Можно, конечно, в рамках сессии проинсертить каждую строку во временную #таблицу, а затем отработать Для большого кол-ва данных было бы проще выполнить один инсерт с кучей данных в бд. Подскажите. Название: Re: Запись целой таблицы в бд Отправлено: carrygun от Апрель 03, 2013, 13:02 Добавить данные с помющью транзакции. Можно составить один INSERT запрос с множеством VALUES. Можно еще посмотреть в сторону QSqlQuery::execBatch(), но в большинстве случаев он разворачивается в тупой цикл из INSERT'ов.
Название: Re: Запись целой таблицы в бд Отправлено: Bepec от Апрель 03, 2013, 13:20 Не всегда разворачивается. Зависит от базы и драйвера :)
А так да - используем множественные запросы, если поддерживается базой данный. Или же используем много запросов в одной транзакции. Название: Re: Запись целой таблицы в бд Отправлено: carrygun от Апрель 03, 2013, 13:49 Не всегда разворачивается. Зависит от базы и драйвера :) Там буквально один драйвер это умеет из коробки.А так да - используем множественные запросы, если поддерживается базой данный. Или же используем много запросов в одной транзакции. Название: Re: Запись целой таблицы в бд Отправлено: Bepec от Апрель 03, 2013, 14:12 Незнаю точно :) Потому и спорить не могу.
Название: Re: Запись целой таблицы в бд Отправлено: dio от Апрель 03, 2013, 17:28 Еще парочка вариантов:
1. Разбить данные таблицы на пакеты (в виде XML или CSV) и реализовать процедуру массовой загрузки средствами СУБД. 2. Использовать специализированные инструменты загрузки данных (например SQL*Loader для Oracle RDBMS). Название: Re: Запись целой таблицы в бд Отправлено: Danila_Bagrofff от Апрель 04, 2013, 10:20 Да, тоже стал смотреть в сторону xml...
Но наложенные платежи по парсингу все-таки великоваты... Решил делать через временные таблицы в сессии... Если кто-то натолкнется, то вот полезная статейка, найденная мной по этому поводу: http://habrahabr.ru/post/96145/ |