Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Перенести 30M записей  [new]
move_data
Guest
Запустил перекачку данных с удаленного сервера
insert into tmp WITH 
 select * from [link1].db.dbo.tmp


[link1].db.dbo.tmp занимает 11G. Можно ли примерно оценить, какой процент данных уже перенесен?

На приемнике таблица tmp не растет (данные не закомичены). Однако файл данных на ОС вырос уже на 5G.

PS: про bcp знаю
9 авг 13, 12:34    [14686286]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Glory
Member

Откуда:
Сообщений: 104751
Можно ли примерно оценить, какой процент данных уже перенесен?
select count(*) from tmp with(nolock)
9 авг 13, 12:36    [14686302]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Гость333
Member

Откуда:
Сообщений: 3683
exec sp_spaceused 'tmp'
9 авг 13, 12:36    [14686306]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
move_data
Guest
Glory, спасибо!
9 авг 13, 12:50    [14686412]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
KRS544
Member

Откуда:
Сообщений: 497
Не самый удачный способ переносить данные, открывается транзакция на все ваши 11G
Лучше использовать стандартную софтину - "импорт экспорт данных"
или написать процедуру, которая будет копировать какой-то диапазон по индексу (по 10 000 записей хотя бы)
А самый быстрый способ - через CSV файл - имхо
9 авг 13, 13:11    [14686546]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3754
KRS544
Не самый удачный способ переносить данные, открывается транзакция на все ваши 11G
Лучше использовать стандартную софтину - "импорт экспорт данных"
или написать процедуру, которая будет копировать какой-то диапазон по индексу (по 10 000 записей хотя бы)
А самый быстрый способ - через CSV файл - имхо

самый быстрый через ssis
9 авг 13, 13:38    [14686747]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
move_data
PS: про bcp знаю

тогда зачем делаете по другому то ?
9 авг 13, 13:39    [14686751]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
KRS544
Member

Откуда:
Сообщений: 497
Ivan Durak
самый быстрый через ssis

Ну да, сначала на одном слить в файл, потом на другом залить файл через SSIS :).
Когда полтерабайта гоняешь, получается в разы быстрее...
9 авг 13, 13:42    [14686775]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
KRS544
Member

Откуда:
Сообщений: 497
А если еще и отсортировать по кластерному индексу, то вообще сказка :)
9 авг 13, 13:44    [14686793]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3754
KRS544
Ivan Durak
самый быстрый через ssis

Ну да, сначала на одном слить в файл, потом на другом залить файл через SSIS :).
Когда полтерабайта гоняешь, получается в разы быстрее...

мдя.... на ssis конект к удаленному серверу и закачка оттуда напрямую причем балк лоадом, и никаких промежуточных файлов.
Причем можно распаралелить даже!!!
Если есть, что быстрее - поделись информацией!
9 авг 13, 14:13    [14687058]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
move_data
Guest
Ivan Durak,

Вы предлагаете избавиться от плоского файла bcp и заменить его установкой SSIS )

Быстрее SSIS вряд ли что-то будет, разве что SSIS с attunity драйвером )

Очевидно, что insert into select не самая быстрая вещь на свете, но если она выполняется в приемлемое время (40 минут), то удобство при использовании может перевесить плюсы привлечения сторонних программ.
9 авг 13, 14:32    [14687220]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
KRS544
Member

Откуда:
Сообщений: 497
Ivan Durak, есть ложка дегтя в перекачке БОЛЬШОГО объема данных через SSIS.
Через некоторое время перекачка "засыпает".
Если вначале (первые 2-3 часа) данные качаются довольно быстро, то потом скорость падает.
Если вначале, например, закачивается по млн строк в минуту, то часов через 5 это уже тысячи строк.
Объяснение этому я не нашел. Может Glory объяснит?
А через CSV файл я такого эффекта не наблюдал, исключая конечно моменты авторасширения базы.
Сервер ничем больше не нагружен.
9 авг 13, 14:57    [14687401]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Glory
Member

Откуда:
Сообщений: 104751
KRS544
Объяснение этому я не нашел. Может Glory объяснит?

Еще в DTS хотя таск и назывался BULK INSERT-ом, но как настоящий bulk insert он начинал работать только после явного указания соответствующей галки. А без нее работал как обыкновенный insert
9 авг 13, 15:02    [14687442]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
move_data
Очевидно, что insert into select не самая быстрая вещь на свете, но если она выполняется в приемлемое время (40 минут), то удобство при использовании может перевесить плюсы привлечения сторонних программ.
А
OPENROWSET(BULK ...)
, значит, сильно напряжнее?
9 авг 13, 15:03    [14687443]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
KRS544
Member

Откуда:
Сообщений: 497
Glory
Еще в DTS хотя таск и назывался BULK INSERT-ом, но как настоящий bulk insert он начинал работать только после явного указания соответствующей галки. А без нее работал как обыкновенный insert

А где можно настроить данную опцию?
9 авг 13, 15:08    [14687480]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Glory
Member

Откуда:
Сообщений: 104751
KRS544
А где можно настроить данную опцию?

Я говорил про DTS. В свойствах таска.
Про SSIS точно не знаю
9 авг 13, 15:12    [14687504]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
move_data
Guest
Ennor Tiegael
OPENROWSET(BULK ...)

[/src], значит, сильно напряжнее?


Это потребует предварительно созданного файла с данными, правильно?
9 авг 13, 15:23    [14687584]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Empirical
Member

Откуда:
Сообщений: 99
KRS544
Если вначале (первые 2-3 часа) данные качаются довольно быстро, то потом скорость падает.
Объяснение этому я не нашел.

память на исходе
9 авг 13, 15:39    [14687742]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
KRS544
Member

Откуда:
Сообщений: 497
Память на исходе уже через 10 минут
9 авг 13, 15:49    [14687819]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Empirical
Member

Откуда:
Сообщений: 99
KRS544
Память на исходе уже через 10 минут

Нет, ну это моя догадка почему ssis замедляется. Я как то поставила его хмл файлы готовить к чтению, 3 дня и 3 ночи ждала (на выходные запустила). В понедельник отменила все это. В итоге все обработала через тисквел. Но у Вас другой случай, может и не память причина.
9 авг 13, 16:57    [14688331]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
kalimba
Member

Откуда:
Сообщений: 297
move_data,

Eng/Rus.
если очень вкратце, то делаете Recovery model - Simple, создаёте новую табличку (кучу без индексов), создаёте SSIS-пакет (Dataflow, OLE DB Source/Destination, убираете галку с Fire triggers). Всё остальноё зависит от ресурса сервера (иопсы, озу), быстрее вряд ли получится, кроме как использовать секционирование.
9 авг 13, 17:22    [14688492]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
move_data
Ennor Tiegael
OPENROWSET(BULK ...), значит, сильно напряжнее?


Это потребует предварительно созданного файла с данными, правильно?
Это да. Ну если не хотите возиться с файлами и задача регулярная, то только SSIS, быстрее точно не получится.

Можно еще поставить профайлер и посмотреть, какие именно инструкции отправляет SSIS, когда делает bulk copy. Меня это давно интересовало, но все как-то руки не доходили.
9 авг 13, 18:03    [14688834]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3754
Glory
KRS544
А где можно настроить данную опцию?

Я говорил про DTS. В свойствах таска.
Про SSIS точно не знаю

все там есть и больше того
9 авг 13, 18:26    [14688951]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3754
KRS544
Память на исходе уже через 10 минут

только если какой баг с утечкой памяти. Но у меня в практике никогда такого не было, чтобы ссис бежел,бежал и замедлялся.
Даже на миллиардных таблицах
9 авг 13, 18:29    [14688958]     Ответить | Цитировать Сообщить модератору
 Re: Перенести 30M записей  [new]
KRS544
Member

Откуда:
Сообщений: 497
Это не баг, сервак резервирует память под кеш столько, сколько нужно (в пределах настроек конечно, у меня мах стоит). Обычно всю.
9 авг 13, 18:39    [14689011]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить