バックアップ内部についてPaulが書いた記事は素晴らしいものであり、あなたはそれを読む必要があります。他の人が言ったことに追加し、あなたの質問の特定の部分を強調する
また、バックアップはシングルスレッドであり、単一のファイルにバックアップすることを想定して、1つのコアのみを使用することを聞きました。また、マルチコアマシン、たとえば16コア、または少なくとも1つよりもかなり大きな数のマシンがあるとします。
バックアップ操作ですcan use parallelism
が、これはSQL Serverのオプティマイザーによる並列処理ではなく、バックアップがデータファイルを読み取る必要があるディスクの数と、バックアップがデータファイルを書き込む場所と作成されるバックアップファイルの量によって駆動される並列処理ではないことに注意してください。
MAXDOP
SQL Serverバックアップの取得中はヒントを使用できません
単純なTSQLバックアップ操作の実行計画をSSMSで生成することはできません。
SQL Serverのクエリオプティマイザーによって駆動される並列処理は、基本的に関係するオペレーター向けです(実際にはより複雑ですが、簡単にするためにこれを使用できます)。
Technet Wikiでバックアップと並列処理に関する記事を書きました。SQLServer バックアップ中の並列処理について簡単な例を使用して説明しました。以下は結論です
データベースファイルが複数のディスクにある場合、デバイスドライブごとにスレッドでバックアップ操作が開始され、データが読み取られます。同様に、復元が複数のドライブ/マウントポイントで実行される場合、バックアップ操作はドライブ/マウントポイントごとに1つのスレッドを開始します
同じドライブにバックアップの複数のコピーをダンプしている場合でも、バックアップファイルごとに1つのスレッドがダンプされます。
バックアップに関連する並列性はストライプに関連しています。各ストライプは独自のワーカースレッドを取得します。これは、実際には、並列操作と見なすべきバックアップ/復元の唯一の部分です。
最大並列度は、バックアップ操作に影響しません。
これについては、ポールとボブ・ドーから専門家の意見を聞きました。
では、バックアップジョブの実行中はどうなりますか?また、バージョンごとに大きな違いはありますか?たとえば、2008、2012、2014(ライセンスではありません)。
Bob Dorrによるこのblog.msdnの記事を読むことをお勧めします。彼が強調したいくつかの重要な点は
バックアップが開始されると、バッファプールの外部のメモリから割り当てられた一連のバッファが作成されます。ターゲットは通常、各バッファーにつき4MBであり、約4〜8バッファーになります。計算の詳細は、http://support.microsoft.com/kb/904804/en-usにあります。
バッファは、空きキューとデータキューの間で移行されます。リーダーは、空きバッファをプルし、データで満たし、データキューに配置します。ライターは、いっぱいになったデータバッファーをデータキューから引き出し、バッファーを処理して空きリストに返します。
バックアップデバイスごとにライターを取得し、それぞれがデータキューから取得します。したがって、ディスクへの4(4)仕様のバックアップコマンドには、4つのライターと1つのリーダーがあります。リーダーは非同期I / Oを使用するため、ライターに追いつくことができます。
を有効にすることができますtrace flags 3213 and 3605
。両方ともドキュメント化されていないので、テスト環境で使用してください。SQLServerエラーログにダンプされる興味深いメッセージを確認してください。以下のようなものが表示されます
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,
TSQLまたはSMOを使用してSQL ServerからWindows Azure Blobストレージサービスへのバックアップと復元を有効にすることで導入された拡張機能についてのみ知っています。ここを読む