|
Программирование >> Программирование баз данных
Приведенная выше команда разбита на две строки для удобства чтения, но фактически должна быть введена в виде одной строки. При вводе этой команды в приглаилении командной строки нажмите клавишу <Enter> только после полного завершения ввода. В командной строке вводимые команды, имеющие большую длину, после достижения правого края окна переносятся на следующую строку жрана, но при этом их разбивка на две или несколько строк не происходит. Еще раз отметим, что данные, представленные в формате с разграничителями в виде запятых, распознаются системой как символьные данные. Опция - t, позволяет указать, что в строках файла в качестве разделителей применяются запятые, а опция -г\п указывает, что разграничителем строк служит символ обозначения конца строки. В приведенном примере для разнообразия предусмотрено также применение информации о соединении с сервером; в качестве имени пользователя указано sa, а паролем служит bubbagump. И в этом случае утилита ВСР подтверждает успешную передачу данных, с указанием основных статистических сведений: starting сору... 3 rows copied. Network packet size (bytes): 4096 Clock Time (ms.) Total : 15 Average : (200.00 rows per sec.) Снова выполним проверку того, соответствуют ли данные ожидаемым: USE AdventureWorks select CustomerlD, CompanyName, ContactName FROM dbo.CustomerList where CustomerlD LIKE X% Результаты выполнения этой команды со всей очевидностью показывают, что все введенные данные присутствуют в базе данных... CustomerlD CompanyName ContactName XGENE Generic Sales and Services Al Smith XMORE More for You Paul Johnston XWALL Wallys World Wally Smith Сравнение режимов с ведением журнала и без ведения журнала Утрглита ВСР может эксплуатироваться в быстром режиме (без ведения журнала) ргли в медленном режиме (с ведением журнала). Каждый из этих режимов имеет свои преимущества и недостатки. Быстрый режим позволяет достичь наивысшей производительности, но медленный режим обеспечивает максимальную восстановимость базы данных. В медленном режиме предусмотрено ведение журнала, поэтому в случае аварийного завершения импорта данных в базу данных можно немедленно выполнить по журналу не занимающую много времени операцию отмены транзакций, зафиксированных в журнале, и привести базу данных в исходное состояние. С другой стороны, быстрый режим становится наиболее подходящим, если приходится передавать большие объемы данных. При этом не только сокращается время передачи, но и исключается возможность исчерпания свободного пространства в журнале транзакций, поскольку в нем не регистрируются операции передачи данных. Для того чтобы иметь возможность выбрать наиболее подходящий из этих двух режимов, необходимо оценить некоторые условия. Ниже перечислены условия, которые должны соблюдаться для того, чтобы можно было эксплуатировать утилиту ВСР в режиме без ведения журнала. Целевая таблица не может применяться в среде репликации. Если на целевой таблице задан индекс, то в ней должны отсутствовать данные. Если целевая таблица уже содержит данные, то на ней не должны быть заданы индексы. Должна быть задана подсказка TABLOCK. На целевой таблице не должны быть заданы триггеры. В версиях, предшествующих SQL Server 2000, для опции select into/ bulkcopy должно быть задано значение True. Таким образом, для копирования данных в быстром режиме в индексированную таблицу, содержащую данные, необходимо выполнить описанные ниже действия. Удалить индексы. Удалить все триггеры. Вызвать на выполнение утилиту ВСР. Повторно индексировать целевую таблицу. Вновь задать все триггеры. После выполнения любой опергщии ВСР в режиме без журнала необходимо немедленно провести резервное копирование базы данных назначения. Если целевая таблица не соответствует требованиям к быстрому режиму ВСР, то операцию ВСР следует выполнять в режиме с ведением журнала. При этом следует учитывать возможность переполнения журнала транзакций при передаче больших объемов данных. Для предварительной очистки журнала транзакций можно выполнить команду BACKUP LOG, используя опцию WITH TRUNCATE ONLY. Опция WITH TRUNCATE ONLY предусматривает усечение неактивной части журнала без резервирования каких-либо данных. Необходимо очень серьезно воспринимать предостережение о том, что выполнение операций ВСР может привести к переполнению журнала. Если не представляется возможным прибегнуть к использованию операции с минимальным объемом ведения журнала, то следует рассмотреть вариант, предусматривающий сокращение размера пакета с данными и ввод в действие опции TRUNCATE ON CHECKPOINT на всю продолжительность операции. Еще одним решением является использование опций -F и -L для комп-лектювания данных в последовательно обрабатываемые блоки и усечение журнала в промежутках между этапами обработки отдельных блоков. Экспорт с помощью утилиты ВСР На практике редко возникают такие ситуации, что на предприятии операции массовой обработки данных применяются для передачи данных только в одном направлении, например, для ввода данных в базу данных, поэтому мы должны также ознакомиться с возможностями вывода. Утилита ВСР позволяет экспортировать данные из таблицы, представления или запроса. При этом должно быть указано имя файла назначения; если этот файл уже существует, то он перезаписывается. В отличие от операций импорта, пропуск столбцов в течение экспорта не допускается. Столбцы с временными отметками, столбцы с данными rowguid и вычисляемые столбцы экспортируются по такому же принципу, как и любые другие столбцы СУБД SQL Server (как если бы они содержали настоящие данные). Для выполнения экспорта необходимо иметь соответствующие права на выполнение операции SELECT применительно к исходной таблице (или таблицам). Рассмотрим ряд кратких примеров, в которых используется таблица HumanResources . Department базы данных AdventureWorks. Для экспорта данных в файл данных с применением формата, заданного по умолчанию, можно выполнить следующую команду: ВСР AdventureWorks.HumanResources.Department out c:\DepartmentIn.txt -с -Т При этом создается файл, который выглядит следующим образом: 1 Engineering Research and Development 1998-06-01 00:00:00.000 2 Tool Design Research and Development 1998-06-01 00:00:00.000 17 Smart Guys Research and Development 2006-04-01 00:00:00.000 18 Product Test Research and Development 2006-04-01 00:00:00.000 В данном случае нет необходимости использовать файл формата; кроме того, не выдаются приглашения для ввода данных о длине поля или аналогичной информации, поскольку опция -с позволяет указать, что должны быть просто экспортированы все данные, независимо от типа, в виде простого текста ASCII в формате, применяемом по умолчанию. В операторе экспорта по умолчанию в качестве разделителя полей используется символ табуляции, а в качестве разделителя строк - символ конца строки. Следует учитывать, что файл назначения, если он существует, перезаписывается, причем такая перезапись происходит без вывода каких-либо приглашений для подтверждения или предупреждений. Чтобы задать вместо применяемого по умолчанию разделителя другой разделитель, необходимо вызвать команду на выполнение: ВСР AdventureWorks.HumanResources.Department out DepartmentOut.txt -с -Т -t. Обратите внимание на то, что запятая, стоящая в конце, не является опечаткой. Символ, который непосредственно следует за параметром -t, представляет собой разделитель полей; в данном случае таковым является запятая. В результате выполнения приведенной выше команды будут получены следующие результаты: 1,Engineering,Research and Development,1998-06-01 00:00:00.000 2,Tool Design,Research and Development,1998-06-01 00:00:00.000 17,Smart Guys,Research and Development,2006-04-01 00:00:00.000 18,Product Test,Research and Development,2 006-04-01 00:00:00.000 Было указано, что вместо символа табуляции разделителем должна служить запятая, поэтому получен файл, примерно равнозначный файлу . csv.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |