Задача «Массовая вставка»
Изменения: 17 июля 2006 г.
Задача «Массовая вставка» обеспечивает наиболее эффективный способ копирования больших объемов данных в таблицу или представление SQL Server. Предположим, что компания хранит список продуктов объемом в миллион строк в головном компьютере, но система электронной коммерции компании использует для заполнения веб-страниц сервер SQL Server 2005. Необходимо обновлять таблицу продуктов SQL Server по ночам в соответствии с главным списком продуктов, хранящимся в головном компьютере. Для обновления таблицы список продуктов сохраняется в формате с символами табуляции в качестве разделителей и используется задача «Массовая вставка» для копирования данных напрямую в таблицу SQL Server.
Чтобы обеспечить высокую скорость копирования, данные не должны подвергаться преобразованиям при перемещении из исходного файла в таблицу или представление.
Чтобы настроить задачу «Массовая вставка», выполните следующее.
- Укажите диспетчер соединений OLE DB для подключения к целевой базе данных SQL Server и таблицу или представление, в которые будут вставляться данные. Задача «Массовая вставка» поддерживает только подключения OLE DB к целевой базе данных.
- Чтобы получить доступ к плоскому файлу, укажите диспетчер соединения с плоскими файлами или диспетчер подключения файлов. Задача «Массовая вставка» использует диспетчер соединений только для местоположения исходного файла. Задача пропускает другие параметры, выбранные в редакторе диспетчера соединений.
- Определите формат, используемый задачей «Массовая вставка», либо при помощи файла форматирования, либо указав разделители столбцов и строк в исходных данных. При использовании файла форматирования укажите для доступа к нему диспетчер подключения файлов.
- Укажите, какие действия следует произвести над целевой таблицей или представлением при вставке данных. Эти параметры включают в себя проверочное ограничение, разрешение на вставку данных в столбцы удостоверений, сохранение значений NULL, запуск триггеров, блокировку таблицы.
- Введите сведения о пакете вставляемых данных, такие как размер пакета, первая и последняя вставляемая строка файла, число ошибок вставки, которые могут произойти, прежде чем задача прекратит вставку строк, а также имена столбцов, которые будут отсортированы.
Если задача «Массовая вставка» использует для доступа к исходному файлу диспетчер соединений с плоскими файлами, задача не использует формат, указанный в нем. Вместо этого задача «Массовая вставка» использует либо формат, указанный в файле форматирования, либо значения свойств задачи RowDelimiter и ColumnDelimiter.
Особенности использования
Перед использованием задачи «Массовая вставка» примите во внимание следующее.
- Задача «Массовая вставка» может передавать данные только из текстового файла в таблицу или представление SQL Server. Для использования задачи «Массовая вставка» в целях передачи данных из других систем управления базами данных (СУБД) необходимо будет экспортировать данные из источника в текстовый файл, а затем импортировать их из текстового файла в таблицу или представление SQL Server.
- Назначением должна быть таблица или представление базы данных SQL Server. Если целевая таблица или представление уже содержат данные, то при запуске задачи «Массовая вставка» новые данные добавляются к существующим. Если необходимо заменить данные, запустите задачу «Выполнение SQL», которая выполнит инструкцию DELETE или TRUNCATE до запуска задачи «Массовая вставка». Дополнительные сведения см. в разделе Задача «Выполнение SQL».
- В объекте задачи «Массовая вставка» можно использовать файл форматирования. Если имеется файл форматирования, созданный программой bcp, можно указать путь к нему в задаче «Массовая вставка». Задача «Массовая вставка» поддерживает файлы форматирования как в формате XML, так и в форматах, отличных от XML. Дополнительные сведения о файлах форматирования см. в разделе Файлы форматирования для импорта или экспорта данных.
- Запускать пакеты, содержащие задачу «Массовая вставка», могут только члены фиксированной серверной роли sysadmin.
Использование задачи «Массовая вставка» вместе с транзакциями
Если размер пакета не указан, вся операция массового копирования рассматривается как одна транзакция. Размер пакета 0 указывает, что все данные вставлены в один пакет. Если указан размер пакета, каждый пакет представляет собой транзакцию, которая фиксируется после завершения работы пакета. Дополнительные сведения см. в разделе Неявные транзакции.
Поведение задачи «Массовая вставка» по отношению к транзакциям зависит от того, входит ли задача в транзакцию пакета. Если задача «Массовая вставка» не входит в транзакцию пакета, каждый пакет без ошибок фиксируется как отдельный модуль перед попыткой передачи следующего пакета. Если задача «Массовая вставка» входит в транзакцию пакета, пакеты без ошибок остаются в транзакции по завершении задачи. Фиксация или операция отката этих пакетов произойдет вместе со всем пакетом.
Ошибка задачи «Массовая вставка» не вызывает автоматического отката успешно загруженных пакетов, а успешное завершение задачи не означает, что пакеты автоматически фиксируются. Операции фиксации и отката происходят только в результате настройки свойств пакета и потока операций.
Указание источника и назначения
При указании расположения исходного текстового файла учитывайте следующее.
- Сервер должен иметь разрешение на доступ как к файлу, так и к целевой базе данных.
- Сервер запускает задачу «Массовая вставка». Таким образом, любой файл форматирования, используемый задачей, должен располагаться на этом сервере.
- Исходный файл, загружаемый задачей «Массовая вставка», может располагаться на том же сервере, что и база данных SQL Server, в которую вставляются данные, либо на удаленном сервере. Если файл расположен на удаленном сервере, необходимо указать имя в формате UNC.
Оптимизация производительности
Чтобы улучшить производительность, учтите следующее.
- Если текстовый файл расположен на том же компьютере, что и база данных SQL Server, в которую будут вставляться данные, операция копирования производится с большей скоростью, так как данные не перемещаются по сети.
- Задача «Массовая вставка» не фиксирует в журнале строки, вызвавшие ошибку. Если эти сведения необходимы, воспользуйтесь выходами ошибок компонентов потока данных для обнаружения строк, вызвавших ошибки в файле исключений.
Пользовательские записи журнала, доступные в задаче «Массовая вставка»
В следующей таблице перечислены пользовательские записи в журнале для задачи «Массовая вставка». Дополнительные сведения см. в разделах Реализация ведения журналов в пакетах и Пользовательские сообщения для ведения журнала.
Запись журнала | Описание |
---|---|
DTSBulkInsertTaskBegin |
Указывает, что массовая вставка началась. |
DTSBulkInsertTaskEnd |
Указывает, что массовая вставка завершена. |
DTSBulkInsertTaskInfos |
Выводит описательные сведения об этой задаче. |
Настройка задачи «Массовая вставка»
Свойства задаются через конструктор служб SSIS или программно.
Дополнительные сведения о свойствах, которые можно задать в конструкторе служб SSIS, см. в следующих разделах:
- Редактор задачи «Массовая вставка» (страница «Общие»)
- Редактор задачи «Массовая вставка» (страница «Соединение»)
- Редактор задачи «Массовая вставка» (страница «Параметры»)
- Страница «Выражения»
Дополнительные сведения об установке этих свойств в конструкторе служб SSIS см. в следующем разделе:
Программная настройка задачи «Массовая вставка»
Дополнительные сведения о программной установке этих свойств см. в следующем разделе:
Журнал изменений
Версия | Журнал |
---|---|
17 июля 2006 г. |
|
См. также
Задачи
Основные понятия
Задачи служб Integration Services
Диспетчер подключения файлов
Диспетчер соединений OLE DB
Создание пакета потока управления