SQL Server 2005テーブルに約200万レコードを挿入します。テーブルは現在、クラスター化インデックスと非クラスター化インデックスを持っています。私はそのテーブルの挿入クエリのパフォーマンスを向上させたい。誰でも考えがありますか大量のデータをSQL Server 2005テーブルに挿入
答えて
テーブルのインデックスを無効にしてから、再度挿入してから有効にすることができます。大量のデータを表に挿入する場合は、時間を大幅に節約できます。
そのようなことを行う方法についてSQLサーバーについては、この記事をチェックアウト:http://msdn.microsoft.com/en-us/library/ms177406.aspx
- ドロップ(挿入のためのあなたのデータは同じキーで 先行予約されていない場合は、プライマリを含む)すべてのインデックス
- データ
- を挿入あなたは一括挿入を使用していない正当な理由がない場合、私はあなたの最高のOと言うだろう
SQL Serverについて話しているなら、クラスタリングインデックスを削除しないことをお勧めします。それ以外の場合は、挿入前にテーブルがヒープに変換され、挿入後にクラスタ化されたテーブルに戻されます。どちらも非常に時間とリソースを消費する操作です... –
はい、同意しますが、すでにテーブルに大量のデータがある場合のみ –
インデックスを削除または無効にしてから、インデックスを再作成または再構築すると、より多くの時間が消費されます。そのテーブルにはすでにレコードが含まれているので、私はこのことを試しましたが、それは私の利益にはなりません –
すべてドロップされたインデックスを再作成しますptionはこれを行うことです。つまり、書式に合わせて行を選択し、一括再挿入できます。
この量の通常の挿入を行うと、トランザクションログに大きな負担がかかります。
バルク挿入がオプションでない場合は、挿入をチャンクに分割することで少し勝てます - 行ごとに行かずに挿入して更新しようとしないでください一人でいっぱいになってしまった。
私はこれを少し実験しましたが、決定的な答えに近づく時間はありませんでした。 (私は同じ理由でPerformance for RBAR vs. set-based processing with varying transactional sizesという質問を始めました)
1つのインサートに最大1000行を挿入できます。
values (a,b,c), (d,f,h)
挿入時に主キーを使用してデータをソートします。あなたは、インデックスをドロップして、データを挿入して、インデックスを再作成する必要があります(ロックを保持)
と
使用。
- 1. SQL Server 2005イメージの挿入
- 2. SQL Server 2000:大量のデータの削除と挿入
- 3. 1つのSQLテーブルに大量のCSVファイルを挿入する[SQL Server 2008]
- 4. SQL Server 2005で大量のデータを削除する
- 5. Sql Server 2005にDateTimeを挿入する
- 6. SQL Serverに大量のデータを格納
- 7. SQL Server 2005で非常に大量のデータを並べ替える
- 8. データをSQLテーブルに挿入
- 9. PostgreSQLへのデータの大量挿入
- 10. netbeansのjtextfieldを使用してSQL Serverテーブルにデータを挿入
- 11. データがSQL Serverの別のテーブルに挿入されたときにデータをテーブルに挿入
- 12. SQL ServerテーブルのデータをDataGrid vb 2003に挿入
- 13. SQL ServerテーブルからExcelシートの列にデータを挿入
- 14. XMLからSQL Serverのテーブルにデータを挿入します
- 15. エラーSQL Serverのテーブルにデータを挿入する
- 16. SQL Serverビューにテーブルを挿入する
- 17. テーブルからSQL Serverの挿入行に
- 18. VBAにアクセスSQL Serverテーブルの挿入
- 19. Jdeveloper 11gからSQL Serverテーブルにデータを挿入
- 20. CでSQL Serverテーブルにデータを挿入する#
- 21. ExcelデータをSQL Serverテーブルに挿入するバッチファイル
- 22. SQL Server 2005一時テーブル
- 23. SQL Server 2008:バッチでテーブルに挿入
- 24. SQL ServerからAccessテーブルに挿入
- 25. SQL Server - ビューからテーブルに挿入
- 26. SQL Server 2005 OPENROWSET Excelに挿入 - 数値書式設定のテキスト
- 27. SQL Server 2008にUTF8データを挿入
- 28. 1つのテーブルに大量のデータがあり、他のテーブルに大量のデータがある場合にSQL Serverで2つのテーブルに結合する
- 29. mysqlの複数のテーブルに大量のデータを挿入する方法
- 30. SQL Server 2005で行を挿入した後のプライマリキー値
また、現在どのようにデータを挿入していますか?バルクインサートを使用していますか? INSERT文を使用していますか?一度に1つの行を挿入したり、一度に複数の行を挿入していますか? –
@TobyAllen:これは宿題であることを確かに知っていますか? –
私はSQL Server 2005データベースシステムを使用しています。そして、私は一括挿入を使用していません。私はtable_nameステートメントに挿入を使用していて、現在複数の行を同時に挿入しています。 –