История хранимых процедур VoltDB - PullRequest
0 голосов
/ 24 апреля 2018

У меня много хранимых процедур, работающих в Volt, и кажется, что одна из них время от времени вызывает скачки в процессоре, но я не знаю, какая именно.

Есть ли где-нибудь, где я могу увидеть историю всех хранимых процедур, чтобы я мог точно определить проблемную на основе времени, когда она произошла?

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

Мой следующий вариант - войти из хранимых процедур, но я предпочитаю оставить этот параметр в качестве крайней меры, поскольку он потребует дополнительной разработки / развертывания и не будет иметь отношения к внутренним процедурам.

Есть ли способ войти / как-нибудь посмотреть, когда выполняются хранимые процедуры?

1 Ответ

0 голосов
/ 24 апреля 2018

В VoltDB нет журнала каждой транзакции, которую пользователь может просмотреть.Журнал команд не предназначен для чтения и включает только записи.Тем не менее, есть некоторые инструменты, которые вы можете использовать для выявления неэффективных или длительных процедур.

Вы можете вызвать "exec @Statistics PROCEDUREPROFILE 0;"получить сводку по всем выполненным процедурам, включая количество вызовов и среднее время выполнения в наносекундах.Если проблема связана с какой-то конкретной процедурой, она может выпасть.

Вы также можете использовать файл volt.log для фразы «занимает много времени», которая представляет собой сообщение, выводимое при выполнении процедуры или оператора SQL.выполнение занимает более 1 секунды.

Кроме того, в подкаталоге инструментов есть скрипт watch_performance.py, который можно использовать для мониторинга производительности.Это похоже на вызов "exec @Statistics PROCEDUREPROFILE 0;"с регулярными интервалами, за исключением того, что некоторые столбцы собираются из дополнительных селекторов @Statistics, а выходные данные форматируются для удобства чтения.«./watch_performance.py -h» выведет справку и информацию об использовании.Например, вы можете запустить это во время загрузки производительности, чтобы получить представление о рабочей нагрузке.Или вы можете запустить его в течение более длительного периода времени, возможно, с меньшими временными интервалами, чтобы увидеть колебания рабочей нагрузки во времени.

Раскрытие информации: я работаю на VoltDB

...