Я почти уверен, что большинство из нас, разработчиков, каждый день сталкиваются с некоторыми проблемами производительности базы данных. В девяноста процентах случаев это может быть связано с отсутствующими индексами.
В противном случае запрос не использует вновь созданный индекс, а вместо этого сканирует всю таблицу.
Большую часть времени мы этого не заметим, так как приложение работает отлично в течение первых нескольких недель/месяцев, а производительность медленно ухудшается с каждым днем по мере роста таблицы.
Я сам предпочел бы что-то автоматизированное, которое будет запрашивать или уведомлять в случае, если запросы займут больше времени, чем ожидалось. Именно тогда я подумал о том, чтобы использовать настройку hibernate-statistics и включить этот журнал. Но это делает много вещей в фоновом режиме и использует множество неслабых ссылок, что также требует значительного объема памяти JVM.
Я подумал о внедрении небольшой библиотеки, которая поможет мне настроить ее так, чтобы включить то, что нам нужно, и не хранить никакой другой информации.
Моей мотивацией было
- Простая настройка с помощью системных свойств.
- Вводимый даже в проекты, не находящиеся в спящем режиме или не являющиеся весенними, с помощью небольших настроек.
- Статистические отчеты помогут отправлять данные в Prometheus или аналогичные базы данных и создавать оповещения, уведомляющие о наличии запросов, которые необходимо улучшить.
- Разработчику нужны журналы для SQL-запросов с указанием времени, затраченного на выполнение.
- Разработчики могут создавать оповещения на основе Splunk (система ведения журнала) или Prometheus, если запросы занимают больше времени или извлекают строк больше, чем ожидалось.
Ссылка на библиотеку здесь
Оригинал: “https://dev.to/rohithmenon89/database-query-statistics-21db”