2014-01-14 1 views
0

У меня есть файл с простым запросом SELECT 1; повторяется 1000 раз. Когда я запускаю его через time psql -f test.sql -o /dev/null/, есть следующие результаты:Почему psql медленный?

real 0m0.362s 
user 0m0.064s 
sys  0m0.060s 

Это около 1000/0,362 = 2762 запросов/сек?

В pgbench для этого запроса у меня есть:

transaction type: Custom query 
scaling factor: 1 
query mode: simple 
number of clients: 1 
number of threads: 1 
number of transactions per client: 100000 
number of transactions actually processed: 100000/100000 
tps = 12233.355663 (including connections establishing) 
tps = 12239.560512 (excluding connections establishing) 

Где PSQL проводит время?

+0

Он проводит время перенаправления ввода-вывода. –

ответ

1

psql - это простое и универсальное программное обеспечение, и поэтому вывод: dev/null не обеспечивает отключение форматированного вывода. И разбор родовых линий тоже требует времени. Для очень простых и очень быстрых запросов эти издержки могут быть значительными.

+0

Не могли бы вы посоветовать самый быстрый способ выполнить запросы без вывода? – sneawo

+0

@sneawo собственное приложение, разработанное на C, которое считывает команды из входного файла. Не знаю, но это примерно 20 строк кода –

 Смежные вопросы

  • Нет связанных вопросов^_^