powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скопировать таблицу с одного сервера на другой
21 сообщений из 21, страница 1 из 1
Скопировать таблицу с одного сервера на другой
    #40093989
Alex_Va
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
есть 2 сервера SQL2016 и SQL2014.
на SQL2016 второй сервер есть среди связанных серверов

Иногда возникает задача таблицу, сформированную на SQL2016, перекинуть в SQL2014.
Таблица на 10 полей, в среднем 1,2 млн записей на момент переброса

сейчас просто использую на SQL2016:

Код: sql
1.
2.
3.
4.
5.
6.
7.
INSERT INTO SQL2014.database_name.[dbo].[table_name] (col1, col2,...)

SELECT 
 col1
,col2
, ...
FROM database_name.[dbo].[table_name] 



предварительно очищая таблицу на SQL2014.

отрабатывается около получаса

Есть какой-либо другой, более быстрый способ?
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40093991
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Va,

В select добавить секцию where.
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40093993
Alex_Va
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wlr-l,

where 1=1 ?
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40093994
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Va,

Неплохо было бы узнать размер таблицы для начала ))

Код: sql
1.
EXEC sp_spaceused N'[Имя таблицы]'; 



Очистка идет DELETE или TRUNCATE ?
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40093997
Alex_Va
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rowsreserveddataindex_sizeunused1269185 720384 KB248672 KB469248 KB2464 KB


Таблица очищается TRUNCATE

30 минут - не критично, в принципе, и ресурсов хватает.

Стало интересно из-за того, что иногда в работе использую клиент для работы с базами - Navicat
Он позволяет перебросить таблицу с одного сервера на другой просто используя ctrl+c ctrl+v

и делает это почти на треть скорее по времени

поэтому решил спросить у знающих людей )
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40093999
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Va,

Какая модель восстановления у БД на целевом сервере?
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094001
Alex_Va
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

Полная
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094003
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Va,

используйте мастер импорта.
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094004
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Va,

Размер точно не для 30 минут.

на SQL2014.database_name.[dbo].[table_name] нет тригеров?

Бывает, что если таблица нагружена, то TRUNCATE может "висеть". Очистка не занимает времени?

Если наоборот, не с 2016 на 2014 качать, а с 2014 на 2016 забирать - так же долго?

Если железо слабое, то попробуйте порциями заливать в цикле (по 10 000 или 100 000 строк)
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094005
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Va


Есть какой-либо другой, более быстрый способ?

самое быстрое - BCP
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094009
Тяп-ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INSERT в таблицу на связанном сервере идет по одной строке, поэтому медленно, можно проверить профайлером.
Надо не толкать данные, а тянуть, тогда будет вставка пачкой строк.
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094010
Тяп-ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тянуть - это чтобы INSERT ... SELECT выполнялся на целевом сервере
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094011
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Va,

а если тупо выборка с другого сервера без сохранения?

кстати, insert в линкованный сервер (push) всегда медленнее чем тот же insert выполненный с другой стороны (pull).
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094019
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
where - может быть не все данные нужно пересылать?

" Иногда возникает задача " - т.е. можно считать задачу разовой. Тогда чем дольше она выполняется, тем лучше.
Запустил задание и занимайся своими делами.

Уже правильно заметили: изменять данные нужно в своей базе данных, а из чужой - только читать.
Кроме производительности, это и безопаснее.
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094022
Alex_Va
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, кто ответил

Перепишу, чтоб "тянуть" и постараюсь разобраться з Bulk Import
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094043
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Va,

мастер импорта использует bulk операции и выполняет вставку группами записей, не мешает основной работе. То же самое можно сделать при помощи SSIS.
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094048
Alex_Va
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

Вы правы, 3 минуты...

Спасибо, огромное!
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094054
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Va,

~7000 записей в секунду?!! или 1,8Мб в сек? что за жуть?
Сетка 25 мегабит или батарейка в контроллере сдохла?
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094073
Alex_Va
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShIgor
Alex_Va,

~7000 записей в секунду?!! или 1,8Мб в сек? что за жуть?
Сетка 25 мегабит или батарейка в контроллере сдохла?


Извините, я не настолько ещё спец, чтобы адекватно оценить жуть или не жуть

Использовал запрос, написанный в первом посте, отрабатывалось долго.
С помощью отдельного приложения (Navicat), его внутренними средствами - получалось немного быстрее, поэтому и подумал, что есть альтернативные способы, кроме INSERT INTO - SELECT

Сделал то же самое с помощью мастера импорта, на который указал Владислав Колосов - отработалось всё за 3 минуты
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094078
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Va,

вы всегда будете вручную запускать?
3 минуты - это время к которому нужно стремиться при автоматизации.
...
Рейтинг: 0 / 0
Скопировать таблицу с одного сервера на другой
    #40094082
Alex_Va
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oleg_SQL,

пока да
как руки дойдут - попробую автоматизировать
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скопировать таблицу с одного сервера на другой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]