Как отобразить время запроса после его завершения в Vertica? - PullRequest
5 голосов
/ 20 июля 2011

При использовании vsql мне бы хотелось узнать, сколько времени потребовалось для выполнения запроса после его завершения. Например, когда я бегу:

select count(distinct key) from schema.table;

Я хотел бы видеть вывод как:

5678
(1 row)
total query time: 55 seconds.

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

Ответы [ 3 ]

20 голосов
/ 21 июля 2011

In vsql введите:

\timing 

и нажмите Enter.Вам понравится то, что вы увидите: -)

Повтор, который выключит его.

4 голосов
/ 12 февраля 2013

Относительно другой части вашего вопроса:

есть ли другой способ измерить время запроса?

Vertica может регистрировать историю всех запросов, выполненных в кластерекоторый является еще одним источником времени запроса.До 6.0 соответствующей системной таблицей было QUERY_REPO, начиная с 6.0 это QUERY_REQUESTS.

Если вы используете 6.0 или выше, QUERY_REQUESTS.REQUEST_DURATION_MS даст вам продолжительность запроса в миллисекундах.

Пример того, как вы можете использовать QUERY_REQUESTS:

    select *
    from query_requests
    where request_type = 'QUERY'
    and user_name = 'dbadmin'
    and start_timestamp >= CURRENT_DATE
    and request ilike 'select%from%schema.table%'
    order by start_timestamp;

Колонки QUERY_PROFILES.QUERY_DURATION_US и RESOURCE_ACQUISITIONS.DURATION_MS также могут вас заинтересовать.Вот краткие описания этих таблиц на тот случай, если вы еще не знакомы:

RESOURCE_ACQUISITIONS - содержит информацию о ресурсах (памяти, дескрипторах открытых файлов, потоках), полученных каждым рабочим запросом для каждого пула ресурсов всистема.

QUERY_PROFILES - Предоставляет информацию о выполненных запросах.

0 голосов
/ 21 июля 2011

Я не уверен, как включить это в vsql или если это возможно. Но вы можете получить эту информацию из сценария.

Вот psuedocode (я использовал perl):

print time
system("vsql -c 'select * from table'");
print time

Или поместите время в переменную и сделайте некоторое вычитание.

Другой вариант - использовать какой-нибудь инструмент, например, Toad, для подключения к Vertica вместо vsql.

...