Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 трансформация данных в sql2012  [new]
баз лайтер
Member

Откуда:
Сообщений: 28
давным давно, году так в 2005, для sql2005, я писал скрипт, который выгружает данные по bcp, с незначительными трансформациями, дропает индексы, заливает по bcp-же и индексы пересоздает. После долгой возни и бенчмарков это оказывалось наиболее производтельным (быстрым) решением. Вопрос к уважаемым коллегам - не придумано ли человечеством с тех пор более прямого способа взять 500Мb данных из таблицы А и положить в таблицу Б, не особенно заморачиваясь транзакционностью.
16 ноя 14, 12:30    [16853354]     Ответить | Цитировать Сообщить модератору
 Re: трансформация данных в sql2012  [new]
Павел-П
Member

Откуда:
Сообщений: 234
баз лайтер,

1. У вас данные лежат на одном сервере?

2. Даже пользуясь bcp приходиться помнить о транзакционности.

-b batch_size

Specifies the number of rows per batch of imported data. Each batch is imported and logged as a separate transaction that imports the whole batch before being committed. By default, all the rows in the data file are imported as one batch. To distribute the rows among multiple batches, specify a batch_size that is smaller than the number of rows in the data file. If the transaction for any batch fails, only insertions from the current batch are rolled back. Batches already imported by committed transactions are unaffected by a later failure.
16 ноя 14, 15:37    [16853913]     Ответить | Цитировать Сообщить модератору
 Re: трансформация данных в sql2012  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
The Data Loading Performance Guide
16 ноя 14, 16:02    [16854007]     Ответить | Цитировать Сообщить модератору
 Re: трансформация данных в sql2012  [new]
Павел-П
Member

Откуда:
Сообщений: 234
На форуме большей популярностью пользуется почти тоже самое, но отсюда https://www.sql.ru/blogs/gladchenko/320
16 ноя 14, 16:09    [16854042]     Ответить | Цитировать Сообщить модератору
 Re: трансформация данных в sql2012  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
баз лайтер
Вопрос к уважаемым коллегам - не придумано ли человечеством с тех пор более прямого способа взять 500Мb данных из таблицы А и положить в таблицу Б, не особенно заморачиваясь транзакционностью.
Начиная с версии 2008, можно пользоваться нелогируемым INSERT...SELECT
16 ноя 14, 18:38    [16854612]     Ответить | Цитировать Сообщить модератору
 Re: трансформация данных в sql2012  [new]
o-o
Guest
alexeyvg
баз лайтер
Вопрос к уважаемым коллегам - не придумано ли человечеством с тех пор более прямого способа взять 500Мb данных из таблицы А и положить в таблицу Б, не особенно заморачиваясь транзакционностью.
Начиная с версии 2008, можно пользоваться нелогируемым INSERT...SELECT

мы-то все поняли, вы про что, но нехорошо так писать, а то потом найдется, кто и скажет: бывают нелогируемые операции, вон alexeyvg привел пример.
There are no non-logged user database operations
(the only non-logged operations are the version stores and workfiles in tempdb)

да и для минимального логирования INSERT...SELECT надо кучку условий соблюсти. короче, выше ссылку дали, все там есть
16 ноя 14, 21:17    [16855091]     Ответить | Цитировать Сообщить модератору
 Re: трансформация данных в sql2012  [new]
баз лайтер
Member

Откуда:
Сообщений: 28
всем спасибо, статьи почитал, побенчмаркал - на наших конкретных данных Minimally Logged Insert рвёт bcp экспорт/импорт в клочья.
Интересно было бы проверить что будет когда данные в память помещаться перестанут, но нам вроде пока не нужно.
Еще раз всем спасибо

К сообщению приложен файл. Размер - 11Kb
18 ноя 14, 19:14    [16867841]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить