我是新來的PG和試圖運行這個簡單的查詢,它是崩潰的Postgres。如果我只嘗試計算r1,查詢將在幾秒鐘內運行,但如果我嘗試通過除r1之外的r6計算r2至r2,則表示「內存不足」,如下所示。糟糕的查詢設計?我將在其他計算中引用計算字段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
我的配置文件參數:
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它絕對是一張桌子。我轉向另一個項目,但我很快會回到這個項目。 –