Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Правка_Руководство к 1 лр.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
116 Кб
Скачать
☆

Ограничения

При использовании файла форматирования с инструкции BULK INSERT можно указать не более 1024 поля. Это значение совпадает с максимальным числом столбцов в таблице. При использовании инструкции BULK INSERT с файлом данных, который содержит больше 1024 полей, формируется ошибка 4822. Программа bcp не имеет этого ограничения, поэтому для файлов данных, которые содержат больше 1024 поля, используйте команды bcp.

Вопросы производительности

Если число страниц, которые должны быть записаны на диск в едином пакете, превышает внутренний порог, может быть произведен полный просмотр буферного пула для определения страниц, подлежащих записи на диск при фиксации пакета. Такой полный просмотр может повредить производительности массового импорта. Превышение внутреннего порога может возникнуть, если большой буферный пул работает с медленной подсистемой ввода-вывода. Избежать переполнения буфера на больших компьютерах можно либо отказавшись от использования подсказки TABLOCK (что удалит оптимизацию массовых операций), либо задав меньший размер пакета (что сохранит оптимизацию массовых операций).

В связи с различиями в компьютерах рекомендуется испытать свою рабочую нагрузку с различными размерами пакетов, чтобы выявить оптимальный вариант.

Массовый экспорт или импорт документов sqlxml

Для массового экспорта или импорта данных SQLXML используется один из следующих типов данных в файле форматирования.

Тип данных

Эффект

SQLCHAR или SQLVARYCHAR

Данные отправляются в кодовой странице клиента или кодовой странице, определенной параметрами сортировки. Тот же эффект достигается указанием параметра DATAFILETYPE ='char' без указания файла форматирования.

SQLNCHAR или SQLNVARCHAR

Данные отправляются в Юникоде. Тот же эффект достигается указанием параметра DATAFILETYPE = 'widechar' без указания файла форматирования.

SQLBINARY или SQLVARYBIN

Данные отправляются без преобразования.

Преобразование типов из символьного в десятичный

В SQL Server 2005 и более поздних версиях выполняемые инструкцией BULK INSERT преобразования типа из строкового в десятичный следуют тем же правилам, что и функция Transact-SQL CONVERT, которая отклоняет числовые значения в экспоненциальном представлении. Такие строки инструкция BULK INSERT трактует как недопустимые и создает отчет ошибки преобразования.

Примечание

В SQL Server версии 7.0 и SQL Server 2000, инструкция BULK INSERT поддерживает преобразование строкового типа в десятичный для строк, представляющих собой числовые значения, которые используют экспоненциальный формат.

Чтобы решить эту проблему, применяется файл форматирования, позволяющий выполнить массовый импорт данных типа float в экспоненциальном представлении в десятичный столбец. В файле форматирования необходимо явно описать столбец с типом данных real или float. Дополнительные сведения об этих типах данных см. в разделе Типы данных float и real (Transact-SQL).

Примечание

Файл форматирования представляет данные типа real в виде SQLFLT4, а float — в виде SQLFLT8. Дополнительные сведения о XML-файлах форматирования см. в разделе Синтаксис схемы для XML-файлов форматирования; о файлах форматирования в формате, отличном от XML, см. в разделе Указание типа файлового хранилища с помощью программы bcp.