2016-02-29 3 views
1

Мне нужно, в сценарии plpgsql, получить время выполнения последнего запроса в переменной для нескольких целей (расчет, отображение и хранение), поэтому параметр psql \timing - это не то, что я искать, потому что я не могу манипулировать временем результата. Вы знаете, если есть что-то вроде команды «получить диагностику», но и для времени выполнения (или обойти):Как получить время выполнения в postgres

get diagnostics my_var := EXECUTION_TIME; 

Я не мог найти ничего другого, кроме row_count и result_oid ...

ответ

3

Вы можете сравнить clock_timestamp() до и после запроса: результат

do $$ 
declare t timestamptz := clock_timestamp(); 
begin 
perform pg_sleep(random()); 
raise notice 'time spent=%', clock_timestamp() - t; 
end 
$$ language plpgsql; 

Пример:

ВНИМАНИЕ: время, потраченное = 00: 00: 00,59173

+0

На самом деле я попытался это, но с сейчас(), так как именно в это время сделка, у меня было то же самое время, до и после, но с clock_timestamp() это работает ! благодаря –

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