|
Программирование >> Администрирование microsoft sql
противном случае команда не будет выполнена. В табл. 7-7 приведен список часто используемых параметров утилитср (они чувствительны к регистру символов). Табл. 7-7. Параметры вызова утилиты Ьср Параметр Описание Имя базы данных Имя та6лицы Запрос In Out Format ФаЙл ланных БД, в которую загружаются данные. Если параметр опущен, данные вставляются в БД по умолчанию для указанного пользователя Имя таблицы, в которую будут вставлены или из которой будут скопированы данные Запрос дл ации данных, копируемых из БД SQL Server Направление перемещения данных Используется для создания файла описания формата Файл ьзусмый в качестве источника или приемника при загрузке данных Максимальное hv.i.. ошибок перед отменой загрузки данных (по умолчанию - 10) Необязательны! параметр. Указывает полный путь к файлу описания формата Указывает полнатй путь к файлу ошибок, в который записываются все ряды, утилита не смогла вставить в БД. Если параметр опущен, файл ошибок не создается Указывает рядов в каждом пакете копируемых данных. Операция копирования каждого пакета в БД SQL Server 2000 ..f.f. является отдельной транзакцией .... ; Указывает, что БД загружаются символьные данные Задает полей (по умолчанию - символ табуляции) Задает символ-разделитель рядов (по умолчанию - символ новой строки) Указывает имя сервера (и при необходимости имя экземпляра), к которому утилита По умолчанию открывается соединение с экземпляром по умолчанию на локальном сервере Указывает идентификатор учетной записи пользователя Указывает пароль для идентификатора учетной записи (по умолчанию - значение NULL) Предписывает доверенное соединение с использованием контекста защипы текущего пользователя Содержим ичные указания, например TABLOCK, ROWS PER BATCH=4 и ORDER ASC DESC, с помощью которых SQL Server определяет порядок наиболее эффективной обработки импортированных данных Следующая команда импортирует символьные данные из текстового файла New-Data в таблицу NewData БД NewDatabase. Разделителем столбцов является запятая, разделителем рядов - символ новой строки; размер пакета - 250 рядов, максималь- -с t -S Имя сереера [ имя экзтпляра\ -Р , -Т -h указание ное число ошибок - 50; файл для записи сведений об ошибках - от- крывается доверенное соединение с источником данных и используется указание TABLOCK: bc e. .NewData 1 CH 7\NewData,txt -r\n /e C:\SelfPacedS0L\CH 7\NewData.err -b250 -m50 -T -h TABLOCK Примечание Текст команды в этом примере вводится в одну строку. Упражнение 3. Импорт данных средствами bcp В этом упражнении вы загрузите данные в БД SQL Server 2000 при утилиты командной строки bcp. Чтобы импортировать данные средствами утилиты Ъср 1. Убедитесь, что вы зарегистрировались на контроллере домена SelfPacedSQL. MS FT под учетной записью Administrator. 2. Раскройте меню Start\Programs\Microsoft SQL Server и выберите Query Analyzer. Запустится SQL Server Analyzer и откроется окно Connect To SQL Server. 3. В раскрывающемся списке SQL Server выберите SelfPacedSQL. Установите переключатель в положение Use Windows Authentication. 4. Щелкните ОК. 5. В меню File выберите команду Open. Откроется окно Open Query File. 6. Выберите файл NewData.sql из папки C:\SelfPacedSQL\CH 7. В SQL Server Analyzer отобразится оператор CREATE TABLE для создания таблицы в которую вы загрузите данные при помощи утилиты bcp. 7. Щелкните кнопку Execute Query в панели инструментов, чтобы выполнить сценарий NewData.sql. 8. Раскройте меню Start\Programs\Accessories и выберите Command Prompt. Откроется окно сеанса MS-DOS. 9. Введите bcp и нажмите клавишу Enter. Заметьте: в окне отобразятся параметры вызова утилиты bcp. 10. Введите следующую команду: bc rtData. .NewData 1 H 7\NewData.txt -с -t-,- -г\п /е C;\SelfPacedS0L\CH 7\NewData.err -Ь250 -п50 ~Т -h TABLOCK Текст команды в этом примере вводится в одну строку. П. Нажмите клавишу Enter. Появится сообщение, что было скопировано 1343 рядов, объединенных в пакеты по 250 рядов. На экране также отобразятся время, затраченное на импорт данных, и размер пакета. В папке C:\SelfFacedS0L\CH 7 будет создан новый, пустой файл NewData.err. 12. Закройте окно сеанса MS-DOS. 13. В панели инструментов окна SQL Query Analyzer щелкните кнопку Clear Window. 14. В области запросов введите SELECT * FROM NewData. 2-14 Заполнение баз ных Глава 7 15. Щелкните кнопку Execute -у в панели инструментов. > . . . Заметьте: таблица NewData содержит 1343 ряда. 16. Закройте SQL Query Analyzer. Использование оператора Transact-SQL BULK INSERT Для загрузки даццых с помощью оператора Transact-SQL BULK INSERT следует указать те же сведения, что и при использовании утилит р. Следующий пример идентичен приводившемуся ше, за исключением того, что написан на Transact-SQL: BULK INSERT NewDatabase.,NewData FROM C:\SelfPacedSQL\CH 7\NewData.txt . - . WITH ( . BATOHSTZE = 250 , : , DATAFILETYPE har , - . . ... FltLLiiLHMiNATOR = , , ROWTEflMINATOH = An, MAXERRORS - 50 , . TABLOCK } Оптимизация загрузки данных На производительность загрузки данных влияет режим восстановления конечной БД SQL Server 2000. Если для конечной БД выбран режим восстановления отдельных операций (full recovery), в журнале регистрируются все операции вставки рядов. При вставке большого числа рядов журнал может быстро переполниться, что негативно скажется на производительности. Чтобы повысить производительность, при загрузке большого объема данных конечную БД рекомендуется перевести в режим восстановления результатов импорта (bulk-logged recovery). При этом в журнале транзакций фиксируются результаты загрузки больших объемов данных; операции же вставки отдельных рядов не регистрируются. Кроме того, при загрузке данных с одной клиентской системы в пустую таблицу рекомендуется использовать указание по блокировке TABLOCK (по умолчанию SQL Server 2000 накладывает блокировки уровня ряда, и затем преобразует их в блокировки уровня таблицы), и с помощью указания задать большой размер пакета (обычно большие пакет более эффективны, чем маленькие). Если на таблице, принимающей данные, определены лучше будет удалить все некластерные индексы и повторно создать их после вставки данных. Если на таблице определены кластерные индексы, отсортировать данные текстового файла в соответствии с порядком индекса, и воспользоваться указанием ORDER. Если конечная таблица уже данные и на ней определены индексы, то решение об удалении индексов будет зависеть от объема вставляемых данных. Если новых данных больше, быстрее будет удалить индексы и затем воссоздать их после загрузки данных.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.096
При копировании материалов приветствуются ссылки. |