条件を満たしたときにテーブルを更新するマージクエリがあり、それを満たさない場合はレコードを別のテーブルに挿入します。問題は、この特定の挿入は、15,000レコードを挿入するのに25分ほどかかります。私が見つけたのは、レコードを挿入する際に、シーケンスIDを挿入しています。シーケンスIDは、それに関連付けられたトリガーによって生成されます。トリガは2つのテーブルから最大IDを選択します。そのため、maxに1を加算して返すので、Insertクエリで使用されます。 これは、私のストアドプロシージャでインサートが遅くなる正確な理由ですか?このSPはDB2上で動作します。DB2に長時間を要する挿入物
-1
A
答えて
0
トリガーはパフォーマンスには適していません。テーブルのautoincrementカラムを使用してください。
0
ボトルネックは確かにトリガーでした。私はトリガを落としてspを走らせたが、約2時間で15kレコードを挿入した。私はトリガーの代わりにシーケンスを使用しています。
関連する問題
- 1. Apache Camel SQLバッチ挿入に長時間を要する
- 2. Windows 2003上のDB2クライアントv9.5接続の確立に長時間を要する
- 3. UIActivityViewControllerプレゼントに長時間を要する
- 4. 先行ゼロを長時間保持します。SQLiteの挿入
- 5. smallintを時間に挿入するpyodbc
- 6. 総挿入時間と削除時間
- 7. 挿入物をファイルに保存する
- 8. FMDBデータの挿入時間
- 9. 挿入後にIBM DB2 Createトリガー
- 10. 非常に長い要求時間VS2010
- 11. ループ時のアイドル時間の挿入
- 12. 挿入だけHHにのみ時間を挿入する方法オラクル
- 13. 現在の時刻を長時間入力する
- 14. DB2 Python辞書のリストを挿入
- 15. Rubyの挿入メソッドが要素を間違ったインデックスに挿入する
- 16. サブ選択NULLエラーからDB2に行を挿入する
- 17. Spring JDBC Frameworkで「null」タイムスタンプをDB2データベースに挿入する方法
- 18. BULKをDataTableからDB2に挿入するときのエラー
- 19. マックアンドロイドスタジオに長い時間からだけグレードの建物を示す
- 20. 時間(HH:MM:SS)をJavaのMySQLデータベーステーブルに挿入するには?
- 21. 大きなテキストファイルのデバッグに長時間を要する
- 22. PyCurlの実行に長時間を要する
- 23. GSIの作成に長時間を要する
- 24. Excelレポート生成に長時間を要する
- 25. Azure SQL DWデータのロードに長時間を要する
- 26. Firebaseのデータフェッチに長時間を要する
- 27. サムネイル画像の生成に長時間を要する
- 28. XML読み込みに長時間を要する
- 29. iOS:ビーコンの検出に長時間を要する
- 30. AzureリソースマネージャVMがプロビジョニングに長時間を要する
このプロセスは、行単位の行処理を使用している可能性があります。セットベースのソリューションが見つかるかどうかを見てください。 – HLGEM
クエリプランを見ると、ボトルネックが何であるかが正確にわかります。シーケンス番号を生成する方法は一般的に、パフォーマンスが悪いだけでなく競合状態の可能性もあるため、非常に悪いアイディアです。 – mustaccio
DBがテーブルに2つのインデックスを保持している場合、挿入は2倍長くなります。 50の索引は、50倍の時間がかかります。一部のOSでは、索引が実際に必要になるまで一意でない索引をオフにすることができます。または、IDを取得したテーブルにIDのユニークなインデックスが必要です。私は30kidsを予約して、あなたのIDを無駄にするよりも速く作業をします。 – danny117