Написанная Полом статья о внутренних резервных копиях превосходна, и вы должны ее прочитать. Добавление к тому, что сказали другие, и акцент на конкретной части вашего вопроса
Также я слышал, что резервное копирование является однопоточным, то есть используется только одно ядро, при условии, что вы создаете резервную копию в один файл. Также предполагается, что у вас есть многоядерный компьютер, например, 16 ядер или, по крайней мере, значительно большее число, чем одно.
Операция резервного копирования, can use parallelism
но помните, что это не параллелизм, управляемый Optimizer в SQL Server, который определяется количеством дисков, с которых резервная копия должна прочитать файл данных, и где резервная копия записывает файл данных и количество созданных файлов резервных копий.
Вы не можете использовать MAXDOP
подсказку при выполнении резервного копирования SQL Server
Вы не можете сгенерировать план выполнения в SSMS для простой операции резервного копирования TSQL.
Параллелизм, управляемый оптимизатором запросов в SQL Server, в основном предназначен для задействованных операторов (на самом деле он более сложный, но для простоты вы можете это принять), поскольку операция резервного копирования не требует использования какого-либо оператора, поэтому он не может использовать параллелизм, управляемый оптимизатором.
Я написал статью на Technet Wiki о резервном копировании и параллелизме, где использовал простые примеры для объяснения параллелизма во время резервного копирования SQL Server. Ниже приводится заключение
Если файлы базы данных находятся на нескольких дисках, операция резервного копирования будет запускаться в потоке для каждого диска устройства для чтения данных. Таким же образом, если восстановление выполняется на нескольких дисках / точках монтирования, операция резервного копирования инициирует один поток на диск / точку монтирования.
Даже если вы сбрасываете несколько копий резервной копии на один диск, у нас будет один поток на файл резервной копии.
Параллелизм, связанный с резервным копированием, связан с полосами. Каждая полоса получает свой собственный рабочий поток, и это действительно единственная часть резервного копирования / восстановления, которую следует рассматривать как параллельные операции.
Максимальная степень параллелизма не влияет на операции резервного копирования.
Я получил экспертное заключение по этому вопросу от Пола и Боба Дорра.
Так что же происходит, когда выполняется задание резервного копирования? А также есть ли существенные различия для разных версий? например 2008,2012 и 2014 (не лицензии).
Я бы предложил вам прочитать эту статью blog.msdn Боба Дорра. Он подчеркнул, что некоторые важные моменты
При запуске резервного копирования создается ряд буферов, выделенных из памяти вне пула буферов. Целевой размер обычно составляет 4 МБ для каждого буфера, в результате чего получается приблизительно от 4 до 8 буферов. Подробная информация о расчете находится по адресу: http://support.microsoft.com/kb/904804/en-us
Буферы перемещаются между свободной и очередями данных. Считыватель извлекает свободный буфер, заполняет его данными и помещает в очередь данных. Автор (ы) извлекает заполненные буферы данных из очереди данных, обрабатывает буфер и возвращает его в свободный список.
Вы получаете средство записи для каждого устройства резервного копирования, каждое из которых извлекает данные из очереди данных. Таким образом, команда резервного копирования с четырьмя (4) спецификациями на диск будет иметь четыре записывающих и считывающих устройства. Читатель использует асинхронный ввод-вывод, поэтому он может идти в ногу с авторами.
Вы можете включить trace flags 3213 and 3605
, оба недокументированы, поэтому, пожалуйста, используйте его в тестовой среде, и посмотрите, какое интересное сообщение сбрасывается в журнал ошибок SQL Server. Появится что-то вроде ниже
Memory limit: 249MB
BufferCount: 7
Sets Of Buffers: 1
MaxTransferSize: 1024 KB
Min MaxTransferSize: 64 KB
Total buffer space: 7 MB
Tabular data device count: 1
Fulltext data device count: 0
Filestream device count: 0
TXF device count: 0
Filesystem i/o alignment: 512
Media Buffer count: 7
Media Buffer size: 1024KB
Я не в курсе каких-либо существенных изменений в резервном коде для различных версий, такие вещи не документированы. Я знаю только об усовершенствовании, представленном во SQL Server 2012 SP1 Cumulative Update 2,
включении резервного копирования и восстановления из службы хранилища BLOB-объектов Windows из SQL Server с использованием TSQL или SMO. Читать здесь