Стаття, написана Полом про внутрішні резервні копії, є чудовою, і ви повинні її прочитати. Додаючи до сказаного інші і наголошуючи на конкретній частині вашого питання
Також я чув, що резервна копія є однопоточною, тобто вона використовує лише одне ядро, припускаючи, що ви створюєте резервну копію в одному файлі. Крім того, якщо у вас є багатоядерна машина, наприклад, 16 ядер, або, принаймні, значна більша кількість, ніж одна.
Операція резервного копіювання, can use parallelism
але пам’ятайте, що це не паралелізм, керований оптимізатором у SQL Server, а керований кількістю задіяних дисків, звідки резервне копіювання має прочитати файл даних і де резервне копіювання записує файл даних та кількість створених резервних файлів.
Під MAXDOP
час отримання резервної копії на SQL Server не можна використовувати підказку
Ви не можете генерувати план виконання в SSMS для простої операції з резервного копіювання TSQL.
Паралелізм, керований оптимізатором запитів у SQL Server, в основному призначений для операторів (насправді його складніше, але для простоти ви можете це взяти), оскільки операція резервного копіювання не передбачає жодного оператора, оскільки він не може використовувати паралелізм, керований оптимізатором.
Я написав статтю в Technet Wiki про резервне копіювання та паралелізм, де використовував прості приклади, щоб пояснити паралелізм під час резервного копіювання на SQL Server. Далі йде висновок
Якщо файли баз даних є на декількох дисках, операція з резервного копіювання ініціюватиме потік на кожному диску пристрою для зчитування даних. Таким же чином, якщо відновлення проводиться на декількох приводах / точках монтажу, операція резервного копіювання ініціювала б один потік на кожний привід / точку кріплення
Навіть якщо ви скидаєте кілька копій резервної копії на один диск, у нас буде по одному потоку на файл резервного копіювання.
Паралелізм, пов'язаний із резервним копією, пов'язаний із смугами. Кожна смуга отримує власну робочу нитку, і це дійсно єдина частина резервного копіювання / відновлення, яку слід розглядати як паралельні операції.
Максимальна ступінь паралелізму не впливає на роботу резервного копіювання.
З цього питання я отримав експертну думку від Пола та Боба Дорра.
Отже, що відбувається, коли виконується завдання резервного копіювання? А чи є суттєві відмінності для різних версій? наприклад, 2008,2012 та 2014 роки (не ліцензії).
Я б запропонував вам прочитати цю статтю Bob.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,
резервного копіювання та відновлення з сервісу зберігання Windows Azure Blob з SQL Server за допомогою TSQL або SMO. Прочитайте тут