私はxとyの2つのテーブルを持っていますこのアップデートをスピードアップして設定するにはどうすればよいですか?
x.col_pが特定の日付とIDに一致する列y.col_pの合計で更新するクエリを作成しました。
UPDATE x
SET col_p = (
SELECT sum(col_p)
FROM y
WHERE concat(x.mmonth, x.dday, x.yyear) = (concat(y.mmonth, y.dday, y.yyear))
AND x.ID = y.ID
)
これが成功し、正しい値でcolumsを更新しますが、このように実行するために、それは実行するために15分かかり、私は〜40個の、より類似したクエリを持っている...だからどのように私はこれを高速化については行くだろうか?私はセット内の機能とどこが私を殺していると思います。
[EXPLAIN](https://www.postgresql.org/docs/9.6/static/sql-explain.html)と「ANALYZE」を使用して、クエリの実行計画が何であるか確認しましたか?一般に、索引を使用していない可能性のある表スキャン全体を調べます。 –
日付を別々の{日、月、年}の列に分割しないでください。代わりに、単一のDATE列型を使用します。 BTW:連結はおそらく'12/1/2017 'と' 1/21/2017 'を等しくないものとして比較します。 – joop