2011-01-25 107 views
4

有沒有辦法創建一個運行十秒鐘的查詢?我不需要真正的數據只是長時間運行查詢的一種方式,所以我可以測試系統在那段時間的工作情況。PostgreSQL在10秒鐘內查詢

我不想創建一個巨大的表格,併爲此做一個簡單的選擇。任何技巧?

回答

6

pg_sleep

SELECT pg_sleep(10); 

但是,如果這是你真正的目標,不會產生系統上的任何負載。

+1

或者變化:SELECT generate_series(1,10000),pg_sleep(0.001) – Gavin 2011-01-25 10:55:12

4
SET statement_timeout to '10s'; 
SELECT 1 FROM pg_class CROSS JOIN pg_class CROSS JOIN pg_class ...; -- be careful ;-) 

請注意,這將強調CPU和RAM,但不一定是磁盤。如果你想強調磁盤,你可能只需要創建一個非常大的表格。爲此,您可以將上面的查詢結果或任何其他解決方案的結果保存到新表格中(CREATE TABLE AS)。

+0

+1好主意。看到工作的主人;) – Daniel 2011-01-25 14:27:30

0

您也可以用-T開關運行pgbench。所以......

pgbench -i -s 10

pgbench -c 10 -T 10