2016-12-15 7 views
0

私はPostgresを使用しています。テーブル全体の内容を1時間ごとに更新するRubyタスクがあります。現在のところ、これはバッチでテーブルを更新することによって実現されます。しかし、最適なバッチサイズを見つけるための式が何であるか正確にはわかりません。適切なバッチサイズを決定するための数式または標準がありますか?最適なバッチサイズpostgresSQLアップデート

+0

テーブルの大きさはどれくらいですか?どのような種類のデータを更新しますか?それは状態の更新ですか?更新された列にインデックスがありますか?アップデートは現在どのくらいの期間かかりますか? – spickermann

答えて

1

私の意見では、理論的に最適なバッチサイズはありません。最適なバッチサイズは、アプリケーションモデル、内部構造、アクセスされるテーブル、クエリ構造などに依存します。サイズを決定するために私が見る唯一の信頼できる方法はベンチマークです。

高速アプリケーションの作成に役立つ最適化のヒントがいくつかあります。これらのヒントの多くは正常に適用できないコーナーケースがあるため、これらのヒントは盲目的に実行できません。ここでも、変更(インデックスの追加、バッチサイズの変更、クエリキャッシュの有効化など)がパフォーマンスを向上させるかどうかを判断する方法は、すべての単一変更の前後でベンチマークです。