アプリケーションは、ソートされたデータを行ごとにテーブルに挿入しています。挿入のパフォーマンスを改善したいと考えています。
アプリを実行する前 (最初は空) または実行の最後にクラスター化インデックスを作成する必要がありますか?
データを一時テーブルにインポートし、X 回の挿入ごとにメイン テーブルに挿入する方がよいのではないでしょうか?
アプリケーションは、ソートされたデータを行ごとにテーブルに挿入しています。挿入のパフォーマンスを改善したいと考えています。
アプリを実行する前 (最初は空) または実行の最後にクラスター化インデックスを作成する必要がありますか?
データを一時テーブルにインポートし、X 回の挿入ごとにメイン テーブルに挿入する方がよいのではないでしょうか?
インポートを行う必要がある場合、インデックスの削除と追加はお勧めしません。
あなたはそれをコメントしました
ソースは、各結果を個別のクエリに挿入するアプリケーションによって行われる計算です。
つまり、個々の挿入ステートメントを回避することはできません。したがって、次に検討すべき解決策は、アプリケーションのマルチスレッド化です。
データベースがインデックスを介してデータの並べ替えを処理するようにします。これは、アプリケーションとデータベースの間の IO レイテンシによって遅延が発生します。
別のスレッドが完了するのを待っている間に次の結果を計算できればinsert
、多くの時間を節約できます。
代替ソリューション
アプリケーションで結果をファイルに書き込み (クイック)、SSIS または BULK INSERT を使用して結果をデータベースに一括インポートすることができます。