0

SQLServerデータツールを使用して作成されたSSISパッケージをSQLServer2012インスタンスに展開し、SQLServer宛先オブジェクトを使用して同じサーバー上のあるデータベースから別のデータベースに大量のデータを移動するプロセスを実行します。

ステージングテーブルのクラスター化インデックスの順序で並べ替えられたSQLクエリでOLEDBソースオブジェクトを使用しています。高度なエディターでSourceオブジェクトにデータの並べ替えのフラグを付け、列のSortKeyPositionも1に設定しています。これでTempDBにぶつからないようにする必要があると思いますが、実行中にTempDBで多くのアクティビティが発生しています。現在サーバー上で実行されているのはパッケージだけです。

以下は、パッケージが実行するプロセスです。OLE DB変換先でまったく同じパッケージスワッピングを実行すると、データはTempDBでのアクティビティなしで.mdfファイルに直接送られます。パッケージは、SQL Server Destinationを使用して約30分で実行され、OLEDBDestinationを使用して約20分で実行されます。OLE DB変換先を使用するだけですが、「TDSストリームのプロトコルエラー」のようなネットワークエラーが散発的にスローされます。

この問題に関する多くのホワイトペーパーと記事を読みましたが、それらはすべて私が使用しているプロセスを説明しているようで、パフォーマンスを向上させるためにOLEDBオブジェクトではなくSQLDestinationオブジェクトを使用することを提案しています。(例:http ://sql10.blogspot.com/2010/07/ssis-check-list-for-minimally-logged.htmlおよびhttp://msdn.microsoft.com/en-us/library/dd425070(SQL .100).aspx)。

ステップ1)ステージングテーブルを切り捨てます

手順2)ステージングテーブルのすべての非クラスタ化インデックスを無効にする

ステップ3)ステージングテーブルから主キー制約を削除します

ステップ4)データをステージングテーブルにコピーします

手順5)ステージングテーブルですべての非クラスタ化インデックスを有効にする

ステップ6)主キーをステージングテーブルに追加し直します

SQL Destinationオブジェクトに欠落している設定、またはこのアクティビティを引き起こす可能性のある他の設定がありますか?あなたが提供できるアドバイスを事前に感謝します。

4

1 に答える 1

1

あなたの情報は古くなっています - 柔軟性と速度の両方のために、OLE DB Destination が優先されます。ref:

http://www.mattmasson.com/index.php/2012/06/should-i-use-the-sql-server-destination/

あなたの結果はそれを確認しているようです。

于 2013-02-26T02:51:52.130 に答える