1

BLOB レコード (最大サイズ 2Mb の PDF/PNG ファイル) を含む、112000 以上のレコードと 38 列のテーブル (A) があります。テーブルには、約 13Gb のデータ スペースとほぼ 9Gb のインデックス スペースがあります。正規化のために、これらの BLOB データを格納する別のテーブル (B) を作成しました。テーブル A には、テーブル B からの FK があります。

テーブル A からテーブル B にデータを挿入するときに問題が発生しています...時間がかかりすぎます。SELECT INTOエクスポートウィザードを試しました。最初の選択肢は 2 時間実行されましたが、どれくらいかかるかわかりません。エクスポート中に 2 番目の選択肢が失敗しました (約 35000 レコードを挿入できました)。

だから、私の質問は: より速い方法はありますか? これを達成するために私にできることはありますか?つまり、非常に大きなディスク容量にもかかわらず、112000 レコードは多すぎるようには見えません。

4

2 に答える 2

1

ロードが失敗する理由は明らかではありません、1 つの大きなステートメントでデータをロードしようとしているINSERT場合、作業をチャンクに分割するとパフォーマンスが向上します。一度に 1 行ずつ実行しないでください。効率的な「スイート スポット」が見つかるまで、合計で約 10M、50M、100M、250M などの行をロードしてみてください。

于 2012-10-01T22:38:09.647 に答える
0

最良の方法は、小さなチャンクに分割し、Philip Kelley Said のように while ループを使用して挿入することです。. 宛先テーブルの非クラスター化インデックスをすべて削除し、データを挿入した後に作成します。. SQL サーバー BI ツールがインストールされている場合は、そこにあるインポート/エクスポート ウィザードを使用して基本パッケージを作成すると、うまく機能します。ディスク容量には依存せず、他のプロセスとのメモリ共有に依存します。

于 2012-10-01T23:40:41.243 に答える