ちょっと複雑なデータをインポートする必要があります。 1つのクエリで3百万以上の行を更新しているUPDATEをいくつか実行する必要があります。このクエリでは、それぞれ約30〜45秒(一部は4-5分)も適用されます。私の質問は、私がそれをスピードアップできるかどうかです。どこで何かを読むことができますか、どのようなインデックスとその列を使って更新を改善することができますか。私はexacly答えが必要ないので、私はテーブルを表示しないでください。私はそれについて学ぶためにいくつかのものを探しています。 のUPDATEの数では、各更新された行に1つのUPDATEコマンドを意味する場合Postgres Optimization UPDATE
1
A
答えて
5
2つのことを参照してください。
2)UPDATE
がアトミックである必要がない場合は、UPDATE
の影響を受ける行の数を分割することを検討してください。
BEGIN
UPDATE ... LIMIT N;
又は(例えばWHERE username ilike 'a%';
)行の数を制限するいくつかの述語:起因Free Space Mapを超えると、「失われた行」の数を最小限にするために、以下のアプローチを考えます。COMMIT
VACUUM table_being_updated
- すべての行が更新されるまで、ステップ1〜4を繰り返し。
ANALYZE table_being_updated
私はあなたのテーブルのすべての行を更新していると破壊の上記のアプローチので、単一のトランザクションの終了時に新しい値で表示されるようにすべての行を必要としない疑いがありますUPDATE
より小さいトランザクションには良いアプローチになります。
そして、UPDATE
の述語で指定された関連する列のINDEX
が劇的に役立つでしょう。さらに援助が必要な場合はEXPLAIN ANALYZE
を転記してください。
0
はその後の問題は、すべてのターゲット表のインデックスが更新され、すべての制約がそれぞれ更新された行でチェックされるということです。その場合は、その後、単一のUPDATEですべての行を更新する代わりにしてみてください:インポートされたデータはテキストファイルである場合
update t
set a = t2.b
from t2
where t.id = t2.id
その後、最初の一時テーブルに挿入し、そこからアップデート。
1)あなたのUPDATE
クエリのEXPLAIN ANALYZE
を投稿:私の答えhere
関連する問題
- 1. 非常に遅いPostgresのUPDATE
- 2. JPAクエリ "optimization"
- 3. SDL:blitting time optimization
- 4. gcc stack optimization?
- 5. jquery-in-footer code optimization(理論)
- 6. -fno-omit-frame-pointer without optimization
- 7. CPLEX Optimization Studioの起動ソリューション
- 8. java peephole optimization初心者コンパイラ
- 9. SQL 2005 Book for Optimization Techniques
- 10. postgresのUPDATE RETURNING句からSELECTできません
- 11. Postgresの - CONFLICT ON - UPDATEが代わりにINSERT
- 12. PostgresのUPDATEにDELETEの戻り値を使用する
- 13. Particle Swarm Optimization - Particle Positionの更新
- 14. Postgresの -
- 15. update query php postgresが何の理由もなく失敗しました
- 16. how update update tableview json
- 17. Postgresトリガー機能
- 18. PHP/postgresの -
- 19. UPDATE
- 20. "rvm rubygems current" vs "rvm update --system" vs "gem update rubygems-update"
- 21. MATLAB Optimization Toolboxを使用した最小二乗円フィッティング
- 22. PHPをコンパイルするときにenable-inline-optimizationは何をする
- 23. Postgres:パーシャルユニークインデックス
- 24. Postgres Tuning
- 25. Postgresアダプタ
- 26. Postgres Indexing?
- 27. のPostgres:
- 28. ポリゴンエリアPostgres
- 29. Postgresの
- 30. はPostgresの9.1、休止状態使用してPostgresデータベース
UPDATEステートメントの実行計画をここに書いてください(フォーマット済みのコードまたはhttp://explain.depesz.com/へのリンクのいずれかとしてください)。この種の質問を投稿するときに役立つ情報を見つけるために、この記事(http://wiki.postgresql.org/wiki/SlowQueryQuestions)を読むこともできます。 –