私は、毎週1回、Oracleから120万レコードのデータをロードするssisパッケージを持っていますinto SQL SERVER 2008R2(32 GB RAM)データウェアハウステーブル。 (切り捨てと読み込み)
このプロセスでは、120万レコードのロードが完了するまでに5時間かかります。
体が同じことをした場合、負荷を完了するまでの平均時間を知りたいと思いました。
私はssisが初めてです。私にアドバイスしてください。 5時間は最適な時間ですか?
注:宛先テーブルは非正規化されており、データウェアハウスにあるため、インデックスはありません。
所要時間は
物事を展望するために-私は最近、同様の移行を行いました。 40列(nvarcharと数値の混合)と300万行のデータを含むテーブルは35分かかりましたが、750万行のデータ(これもnvarcharと数値の混合)を含む別のテーブルとして、104列の場合はそれ以上かかりました7時間。
逆に、1800万行のデータ、6列の3番目のテーブルは、すべて数値で14分かかりました。提供された情報では、この質問に「はい」または「いいえ」で答えることはできません。
ラージ
ソーステーブルと宛先テーブルのスキーマを投稿できますか?行の幅とクラスター化インデックスキーは同じですか? 5時間は最適な場合もあれば最適でない場合もあります。
ソースからのデータの読み取り速度これに影響するいくつかの要因は、ソースの読み取りパフォーマンスヒットです:
次に、表示する必要があるデータ/パッケージのトランスポート層:
SSISパッケージは、テーブルが適切に設定されていると仮定して、一括挿入を使用しようとします。 http://henkvandervalk.com/speeding-up-ssis-bulk-inserts-into-sql-server
次に、宛先の最も弱いリンクに制限されます:
DiskIO
ブロッキング/ロック
不正なクラスタリングキー
待機統計情報をクリアして分析し、負荷クエリに関連する待機統計情報を表示し、次のようなブログからSSISパッケージを高速化する方法を読む必要があります。 http://www.simple-talk.com/ sql/reporting-services/using-sql-server-integration-services-to-bulk-load-data /