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

Откуда: Гималай
Сообщений: 2101
Продолжая тему переноса данных с одного сервера на другой:
1. Скопировать базу
2. Проблема при копировании данных (IDENTITY столбцы)

Проблема в быстром копировании таблицы из прилинкованного сервера.
Какой вариант лучше?
1. Попробовал просто INSERT INTO ... SELECT ... где-то 20 минут. В данном варианте интересует состояние индексов, нужно ли пересоздавать или переорганизовывать индексы?
2. Попробовал удалить индексы на целевой таблице, затем скопировать через INSERT INTO, ушло 10 минут на копирование, и затем создал индексы, на это 25 минут, в итоге 35 минут, но фрагментированность индексов минимальна.

Кто как пробовал?
Спасибо за внимание.
6 апр 09, 08:57    [7024646]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое копирование таблицы  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
Никто не пользовался данным инструментом?
Copy database Table tool for MS SQL Server

OmBelt Database Tools
6 апр 09, 09:33    [7024746]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое копирование таблицы  [new]
artemds
Member

Откуда:
Сообщений: 46
Судя по всему данных целая куча... поэтому требуется оптимизация данных...
можно:

1. перед вставкой данных потключать все триггеры на целевой таблице
1.1 всякие бяки поотключать например:
set nocount on
2. использовать BULK INSERT
3. пошаманить с индексами (включая их удаление и создание опосля)
4. продумать вариант с копирование налету... т.е. при непосредственном создании записи в общем назвается это - репликация
6 апр 09, 10:39    [7025060]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое копирование таблицы  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
artemds
Судя по всему данных целая куча... поэтому требуется оптимизация данных...
можно:

1. перед вставкой данных потключать все триггеры на целевой таблице
1.1 всякие бяки поотключать например:
set nocount on
2. использовать BULK INSERT
3. пошаманить с индексами (включая их удаление и создание опосля)
4. продумать вариант с копирование налету... т.е. при непосредственном создании записи в общем назвается это - репликация


Спасибо за ответ.
Бяки отключены, но это наверно не сильно влияет на скорость или не так?
С индексами так и делаю, триггеров нету.
Вариант с репликацией не сойдет.
Вот насчет BULK INSERT, это же через текстовый файл?
Или можно с сервера на сервер?
6 апр 09, 10:50    [7025130]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое копирование таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104760
В DTS/SSIS есть специальная задача для этого. Называется Transfer SQL Server Objects
6 апр 09, 10:59    [7025182]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое копирование таблицы  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
Glory
В DTS/SSIS есть специальная задача для этого. Называется Transfer SQL Server Objects

Спасибо, попробую таблицы с IDENTITY столбцами перенести
6 апр 09, 12:48    [7026042]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое копирование таблицы  [new]
Voice2001
Member

Откуда:
Сообщений: 375
в BOL про BULK INSERT написано только про файлы. Т.е.нельзя быстро скопировать таблицы между базами? Я прав или чего-то упустил?
7 дек 09, 00:45    [8026128]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое копирование таблицы  [new]
aleks2
Guest
Voice2001
в BOL про BULK INSERT написано только про файлы. Т.е.нельзя быстро скопировать таблицы между базами? Я прав или чего-то упустил?


1. Хто ж тебе мешает через файлы? Будет, один хрен, быстрее.

2. Фиг его знает, шо там написано в BOL, но MS ISA server, если верить профайлеру, использует при записи лога в MS SQL BULK INSERT... файлов там не видать... аднака.
7 дек 09, 06:40    [8026233]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое копирование таблицы  [new]
aleks2
Guest
Voice2001
в BOL про BULK INSERT написано только про файлы. Т.е.нельзя быстро скопировать таблицы между базами? Я прав или чего-то упустил?


1. Хто ж тебе мешает через файлы? Будет, один хрен, быстрее.

2. Фиг его знает, шо там написано в BOL, но MS ISA server, если верить профайлеру, использует при записи лога в MS SQL "INSERT BULK" ... файлов там не видать... аднака.

insert bulk [##WebProxyLog000000031SRV1]("ClientIP" bigint,"ClientUserName" nvarchar(514),"ClientAgent" varchar(128),"ClientAuthenticate" smallint,"logTime" datetime,"service" smallint,"servername" nvarchar(32),"referredserver" varchar(255),"DestHost" varchar(255),"DestHostIP" bigint,"DestHostPort" int,"processingtime" int,"bytesrecvd" bigint,"bytessent" bigint,"protocol" varchar(12),"transport" varchar(8),"operation" varchar(24),"uri" varchar(2048),"mimetype" varchar(32),"objectsource" smallint,"resultcode" int,"CacheInfo" int,"rule" nvarchar(128),"FilterInfo" nvarchar(256),"SrcNetwork" nvarchar(128),"DstNetwork" nvarchar(128),"ErrorInfo" int,"Action" smallint,"GmtLogTime" datetime,"AuthenticationServer" varchar(255))

Шо это за зверь?
7 дек 09, 06:44    [8026236]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое копирование таблицы  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
aleks2
2. Фиг его знает, шо там написано в BOL, но MS ISA server, если верить профайлеру, использует при записи лога в MS SQL BULK INSERT... файлов там не видать... аднака.


SqlBulkCopy class
Lets you efficiently bulk load a SQL Server table with data from another source.
7 дек 09, 06:44    [8026237]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить