Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Автомасштабирование Lakebase находится в бета-версии в следующих регионах: eastus2, westeurope, westus.
Автомасштабирование Lakebase — это последняя версия Lakebase с автомасштабированием вычислений, масштабированием до нуля, ветвлением и мгновенным восстановлением. Сравнение функций с Lakebase Provisioned см. в разделе выбора между версиями.
pg_stat_statements — это расширение Postgres, которое предоставляет подробное статистическое представление о выполнении инструкций SQL в базе данных Lakebase Postgres. Он отслеживает такие сведения, как количество выполнения, общее и среднее время выполнения, а также многое другое, помогая анализировать и оптимизировать производительность SQL-запросов.
Когда следует использовать pg_stat_statements
Используйте pg_stat_statements когда требуется:
- Подробная статистика выполнения запросов и метрики производительности
- Идентификация медленных или часто выполняемых запросов
- Анализ производительности запросов и аналитика оптимизации
- Анализ рабочей нагрузки базы данных и планирование емкости
- Интеграция с пользовательскими средствами мониторинга и панелями мониторинга
Включение pg_stat_statements
Расширение pg_stat_statements доступно в Lakebase Postgres. Для его включения выполните следующие действия.
Подключитесь к базе данных с помощью редактора SQL или клиента Postgres.
Выполните следующую команду SQL, чтобы создать расширение:
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;Расширение начинает сбор статистики сразу после создания.
Сохраняемость данных
Статистика, собираемая pg_stat_statements расширением, хранится в памяти и не сохраняется при приостановке или перезапуске вычислений Lakebase. Например, если ваши вычисления уменьшаются в масштабе из-за отсутствия активности, все существующие статистические данные теряются. После перезапуска вычислительных ресурсов собираются новые статистические данные.
Это означает, что:
- Сброс статистики после перезапуска вычислений или приостановки
- Для длительного анализа производительности требуется согласованная доступность вычислений
- Вам может потребоваться экспортировать важную статистику перед запланированным обслуживанием или перезапуском
Замечание
Рекомендуется регулярно выполнять запросы мониторинга и хранить результаты внешне, если вам нужны данные о производительности на протяжении событий жизненного цикла вычислительного процесса.
Дополнительные сведения: расширения Postgres
Статистика выполнения запросов
После включения расширения можно запросить статистику выполнения с помощью pg_stat_statements представления. Это представление содержит одну строку для отдельного запроса базы данных, показывающую различные статистические данные:
SELECT * FROM pg_stat_statements LIMIT 10;
Представление содержит такие сведения, как:
| идентификатор пользователя | dbid | queryid | query | вызывает |
|---|---|---|---|---|
| 16391 | 16384 | -9047282044438606287 | SELECT * FROM users; | 10 |
Полный список столбцов и описаний см. в документации по PostgreSQL.
Запросы на мониторинг ключей
Используйте эти запросы для анализа производительности базы данных:
Поиск самых медленных запросов
Этот запрос определяет запросы с наибольшим средним временем выполнения, что может указывать на неэффективные запросы, требующие оптимизации:
SELECT
query,
calls,
total_exec_time,
mean_exec_time,
(total_exec_time / calls) AS avg_time_ms
FROM pg_stat_statements
ORDER BY mean_exec_time DESC
LIMIT 20;
Поиск наиболее часто выполняемых запросов
Наиболее часто выполняемые запросы часто являются критически важными путями и кандидатами оптимизации. Этот запрос включает показатели попадания в кэш для выявления запросов, которые могут воспользоваться более эффективным индексированием.
SELECT
query,
calls,
total_exec_time,
rows,
100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
FROM pg_stat_statements
ORDER BY calls DESC
LIMIT 20;
Поиск запросов с наибольшим числом операций ввода-вывода
Этот запрос определяет запросы, выполняющие большинство операций ввода-вывода диска, которые могут повлиять на общую производительность базы данных:
SELECT
query,
calls,
shared_blks_read + shared_blks_written AS total_io,
shared_blks_read,
shared_blks_written
FROM pg_stat_statements
ORDER BY (shared_blks_read + shared_blks_written) DESC
LIMIT 20;
Поиск наиболее трудоемких запросов
Этот запрос определяет запросы, которые используют наибольшее общее время выполнения во всех запусках:
SELECT
query,
calls,
total_exec_time,
mean_exec_time,
rows
FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 10;
Поиск запросов, возвращающих много строк
Этот запрос определяет запросы, возвращающие большие результирующие наборы, которые могут воспользоваться разбивкой на страницы или фильтрацией:
SELECT
query,
calls,
rows,
(rows / calls) AS avg_rows_per_call
FROM pg_stat_statements
ORDER BY rows DESC
LIMIT 10;
Сброс статистики
Чтобы сбросить статистику, собранную с помощью pg_stat_statements:
Замечание
Только databricks_superuser роли имеют привилегии, необходимые для выполнения этой функции. Роли по умолчанию, созданные с проектом Lakebase, и роли, созданные в приложении Lakebase, получают членство в роли databricks_superuser.
SELECT pg_stat_statements_reset();
Эта функция очищает все накопленные статистические данные, такие как время выполнения и подсчеты для инструкций SQL, и начинает собирать свежие данные. Это особенно полезно, когда вы хотите начать с сбора статистики производительности.
Ресурсы
Дополнительные сведения: документация по PostgreSQL