Запрос Postgresql за 10 секунд - PullRequest
4 голосов
/ 25 января 2011

Есть ли способ создать запрос, который будет выполняться ровно десять секунд? Мне не нужны реальные данные, это просто способ выполнить запрос в течение длительного времени, чтобы я мог проверить, как система работает в это время.

Я бы предпочел не создавать огромную таблицу и сделать простой выбор только для этого. Какие-нибудь хитрости?

Ответы [ 3 ]

6 голосов
/ 25 января 2011

pg_sleep * * 1004

SELECT pg_sleep(10);

Но это не создаст никакой нагрузки на систему, если это ваша реальная цель.

4 голосов
/ 25 января 2011
SET statement_timeout to '10s';
SELECT 1 FROM pg_class CROSS JOIN pg_class CROSS JOIN pg_class ...; -- be careful ;-)

Обратите внимание, что это приведет к нагрузке на ЦП и ОЗУ, но не обязательно на диск. Если вы хотите подчеркнуть нагрузку на диск, вам, вероятно, придется просто создать очень большую таблицу. Для этого вы можете сохранить результаты запроса выше или из любого другого решения в новую таблицу (CREATE TABLE AS).

0 голосов
/ 26 января 2011

Вы также можете запустить pgbench с ключом -T.Итак ...

pgbench -i -s 10

pgbench -c 10 -T 10

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...