2011-01-25 104 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