SQL ServerインポートおよびエクスポートウィザードのSSISパッケージのオプションについて

SQL Server インポートおよびエクスポートウィザードでデータの移行ができます。画面でぽちぽちして、最後にSSISのパッケージとして保存することができます。
保存すると「.dtsx」という拡張子で出力されます。

ウィザードで出力されたSSISパッケージの細かいオプションがどうなっているのかが気になったので調べてみました。

前提:今回の調査では、コピー元もコピー先もSQL Server Native Clientで同じAzure SQL Databaseサーバーの別のデータベースにコピーしています。

制御フローは1つだけです。

image

制御フローにパラメーターで気になるのは次のところ。

  • AutoAdjustBufferSize:False
  • DefaultBufferMaxRows:10000
  • DefaultBufferSize:3145728
  • EngineThreads:10

SSISとしては、シンプルなデータフローが定義されています。

image

データソースはこんな感じです。

出力クエリとそれによって取得できるカラムの情報ですね。

image

image

コピー先の設定はこんな感じ。

image

テーブルロックされて、CHECK制約が有効で、IDは保持しなくて、NULLも保持しない。

データアクセスモードは、「テーブルまたはビュー 高速読み込み」

バッチごとの行数はブランクで、挿入コミットサイズの最大値は2147483647。

あとはデータのマッピング情報がありますね。

image

バッチサイズについて

参考:https://www.mssqltips.com/sqlservertip/1840/sql-server-integration-services-ssis-best-practices/

バッチごとの行数は既定では「-1」で、すべての受信業が単一のバッチとして扱われる。
この値を変更すると受信したすべての行を複数のバッチに分割できる。設定可能なのはバッチ内の最大行数までの整数値。

挿入コミットサイズの最大値の既定値の意味は、受信したすべての行が正常に完了すると一回コミットされることを意味するようです。
この値を変更しないと大量のデータ転送中にトランザクションログとtempdbの負荷が増大するという。

参考:MSDN ONLINE

参考:SSIS Best Practice

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.