Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Bulk copy и программа bcp

Чтобы операции BULK COPY и BCP можно было выполнять как непротоколируемые операции, они должны отвечать следующим требованиям:

  • для параметра базы данных select into/bulkcopy должно быть задано значение TRUE;

  • целевая таблица не может иметь никаких индексов (за исключением случаев, когда они является пустыми перед запуском массового копирования);

  • целевая таблица не может участвовать в репликации, поскольку для транзакционной репликации используются записи журнала транзакций;

  • чтобы задать блокировку на уровне таблиц, должна быть указана подсказка TABLOCK.

Эти ограничения позволяют выполнять операции массового копирования с большей скоростью при экономии места в журнале транзакций. Однако при необходимости восстановления базы данных из резервной копии эти непротоколируемые операции придётся повторить.

CREATE INDEX

Операции оператора CREATE INDEX также вполне подходят для выполнения как непротоколируемые операции, поскольку индексы можно повторно создать при необходимости. Повторное создание индексов не представляет сложностей. Но в случае больших таблиц этот процесс может занять много времени и потребовать интенсивного использования ресурсов.

Текстовые операции

К текстовым операциям, которые можно выполнять как непротоколируемые операции, относятся WRITETEXT и UPDATETEXT. Чтобы активизировать выполнение этих операций без протоколирования, нужно просто использовать описанный выше режим BULK_LOGGED.

Контрольные точки

Создание контрольной точки – это операция, которая используется для синхронизации физических файлов данных с кэшем базы данных, чтобы уменьшить время воспроизведения в случае отказа системы. Время, необходимое для воспроизведения базы данных, определяется периодом времени, прошедшим с момента создания последней контрольной точки, и количеством черновых (ожидающих записи) страниц в буферном кэше. Таким образом, уменьшение интервала между контрольными точками снижает время воспроизведения, но за счёт дополнительной нагрузки, налагаемой процессом создания контрольной точки.

Контрольные точки создаются в результате запуска оператора CHECKPOINT, при отключении SQL Server с помощью оператора SHUTDOWN или с помощью Service Control Manager, а также при автоматическом запуске операции контрольной точки из SQL Server.

Операции контрольной точки

В процессе создания контрольной точки выполняется ряд операций:

  • запись всех черновых страниц, которые ещё ожидали записи перед запуском контрольной точки – отписываются все страницы, которые содержат измененные данные и ещё не записаны на диск;

  • запись всех незавершенных транзакций в журнал транзакций – тем самым SQL Server получает данные о транзакциях, которые находились в процессе выполнения на момент создания контрольной точки; в случае отказа системы процесс воспроизведения использует эти данные для воспроизведения этих транзакций;

  • запись всех черновых страниц журнала на диск – тем самым буфер журнала полностью сбрасывается диск;

  • сохранение записей журнала контрольных точек в базе данных – тем самым происходит сохранение записи о контрольной точке вне журнала транзакций, что необходимо из-за возможности резервного копирования и усечения журнала транзакций.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]