10秒内完成的PostgreSQL查询

4

有没有一种方法可以创建一个查询,让它恰好运行十秒钟?我不需要真实数据,只需要一种运行长时间的查询方式,以便测试系统在那段时间内的工作情况。

我不想为此创建一个巨大的表格,并进行简单的选择操作。有什么诀窍吗?

3个回答

6

pg_sleep:

SELECT pg_sleep(10);

但如果你的真实目标是不产生系统负载,那么这样做将不会产生任何负载。


1
或者变体:SELECT generate_series(1,10000),pg_sleep(0.001) - Gavin

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
你也可以使用-T选项运行pgbench。所以... pgbench -i -s 10 pgbench -c 10 -T 10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接