私はPGを初めて使い、この単純なクエリを実行しようとしており、Postgresがクラッシュしています。私はr1を計算しようとすると数秒で動作しますが、以下のようにr1からr6までr6を計算しようとすると "メモリ不足"と表示されます。クエリの設計が貧弱ですか?他の計算では計算フィールドr1 ... r6を参照するので、このクエリをビューにすることを考えています。私の主要な設定ファイルのパラメータは以下の通りです。 Windows 10、PG 9.6、40GB RAM、64ビット。何をすべきかについてのアイデア?ありがとう!計算のためのPostgreSQLの設定ファイルとクエリ設計
編集:最後にLIMIT 500を追加しようとしましたが、うまくいきましたが、このクエリでクエリを実行した場合、つまり、計算されたr1、r2、r3 ...を別のクエリで使用すると、すべてのレコードまたは500に制限されますか?
SELECT
public.psda.price_y1,
public.psda.price_y2,
public.psda.price_y3,
public.psda.price_y4,
public.psda.price_y5,
public.psda.price_y6,
public.psda.price_y7,
(price_y1 - price_y2)/nullif(price_y2, 0) AS r1,
(price_y2 - price_y3)/nullif(price_y3, 0) AS r2,
(price_y3 - price_y4)/nullif(price_y4, 0) AS r3,
(price_y4 - price_y5)/nullif(price_y5, 0) AS r4,
(price_y5 - price_y6)/nullif(price_y6, 0) AS r5,
(price_y6 - price_y7)/nullif(price_y7, 0) AS r6
FROM
public.psda
私のconfigファイルのパラメータ:
max_connections = 50
shared_buffers = 1GB
effective_cache_size = 20GB
work_mem = 400MB
maintenance_work_mem = 1GB
wal_buffers = 16MB
max_wal_size = 2GB
min_wal_size = 1GB
checkpoint_completion_target = 0.7
default_statistics_target = 100
関連性がありますか? http://stackoverflow.com/questions/26478031/error-out-of-memory-on-machine-with-32gb-ram-and-without-swap-file – kennytm
'public.psda'は間違いなくテーブルですか?それはビューですか? –
@DavidAldridgeそれは間違いなくテーブルです。私は別のプロジェクトに移りましたが、すぐにこのプロジェクトに戻ります。 –