PostgreSQL не является Transact-SQL. Это две немного разные вещи.
В PostgreSQL это будет что-то вроде
DO $proc$
DECLARE
StartTime timestamptz;
EndTime timestamptz;
Delta double precision;
BEGIN
StartTime := clock_timestamp();
PERFORM YOUR QUERY HERE;
EndTime := clock_timestamp();
Delta := 1000 * ( extract(epoch from EndTime) - extract(epoch from StartTime) );
RAISE NOTICE 'Duration in millisecs=%', Delta;
END;
$proc$;
С другой стороны, измерение времени запроса не должно быть таким сложным.
Во-первых, в клиенте командной строки postgres имеется функция \timing
, которая измеряет время запроса на стороне клиента (аналогично продолжительности в правом нижнем углу SQL Server Management Studio).
Во-вторых, можно записать время запроса в миллисекундах (для каждого запроса или только если он длился дольше, чем X миллисекунд).
В-третьих, можно собрать синхронизацию на стороне сервера для любого отдельного оператора, используя EXPLAIN
:
EXPLAIN (ANALYZE, BUFFERS) YOUR QUERY HERE;