RTP DesportoCorridas de Fórmula 1 mais curtas a partir de 2027וואלההאם רע"ם ועוצמה יהודית ייפסלו? דיונים בבקשות לפסילה לכנסת ה־26The Jerusalem PostMotive behind Ontario synagogue shooting attack not yet determined by Canadian policePunchVIDEO: NSCDC busts illegal fruit juice factory in Lagos, arrests twoDaily MaverickWHAT’S COOKING: A pair of meaty recipes to plan for Braai DayBollywood HungamaVeteran actor Radha files complaint against sister Ambika and brother over alleged Rs 50 crores cheque fraudInquirerDepEd asked: Why reiterate Pride Month memo when it’s always voluntary?UOLFuracão Polo atinge categoria 4 no Pacífico mexicanoColliderApple TV’s Sensational Spy Series Is on a 630-Day Streaming StreakEgypt IndependentEgypt stresses protection of workers in Lebanon, stronger labor cooperationThe Sydney Morning HeraldLachie Neale faces tribunal in bid to play in AFL grand finalBlickMit viel Gold versehen: Messi präsentiert Spezialtrikot für Argentinien-Abschied
The Daily Newsstand · Free, Always
Tuesday, September 22, 2026

Новый функционал Dasha 1.8 дашборда PostgreSQL: рекомендации по индексам, ввод-вывод, анализ логов

Translate

Панель на странице индексов разбирает запросы из pg_stat_statements со всех хостов кластера парсером PostgreSQL и предлагает недостающие btree-индексы. Для каждого кандидата выводятся колонки и порядок ключа, текст запроса CREATE INDEX, список покрываемых запросов и их доля в общем времени выполнения. Показаны счётчики INSERT, UPDATE и DELETE по таблице. Для партиционированной таблицы формируется скрипт с ON ONLY, CONCURRENTLY и ATTACH PARTITION.

Индекс - “Кандидат” не предлагается, если существующий индекс уже его покрывает. Условие IS NULL по колонке с редкими NULL уходит в предикат частичного индекса, а не в ключ. Предупреждений три: те же колонки уже есть в другом индексе, на таблице уже десяток индексов, запись в таблицу идёт заметно чаще чтения. Рекомендация эвристическая, DDL не выполняется. В дальнейшем планирую добавить разбор запросов, которые есть в логах, а не только в pg_stat_statements.

Рекомендации можно подкрепить планами auto_explain из логов кластера. У кандидата выводятся число планов за последний час с Seq Scan, время этих узлов и число строк, отброшенных фильтром. Если планировщик ошибся в оценке числа строк таблицы, появляется предупреждение: сначала ANALYZE, потом CREATE INDEX.

Ввод-вывод

Страница “I/O” на основе pg_stat_io. Ввод-вывод сервера разложен по типу процесса, объекту и контексту (normal, vacuum, bulkread, bulkwrite). На PostgreSQL 18 в график и детализацию попадает и журнал предзаписи. Показывается эффективность shared_buffers, утилизация от процессов автоочистки и массовых операций.

История строится по снимкам pg_stat_io (настраивается интервал сбора, хранится в своей базке), Есть Live режим, можно без снимков и своей базы смотреть дельты pg_stat_io. Графики показывают счётчики или время. Для времени нужно включить track_io_timing, track_wal_io_timing.

Проверки схемы

Страница проверок схемы собирает дефекты структуры, которые не видны, пока не приведут к аварии. Проверок пока семнадцать, будут добавляться. Среди них последовательность на грани исчерпания, таблица без первичного/уникального ключа, UNLOGGED-таблица или последовательность, схема, в которой PUBLIC может создавать объекты (CVE-2018-1058), UUID в varchar, таблицы без колонок, имя объекта, совпадающее с зарезервированным словом или требующее кавычек. В отчёт входят и находки со страниц индексов и внешних ключей: невалидные ограничения, несовпадение типов во внешних ключах, nullable-ключи, похожие ключи и индексы, B-tree по массивам.

Находки делятся на три уровня: error, warning и notice. У каждой описаны последствия и способ исправления, а где решение однозначно, приложен готовый SQL. Дефект, найденный на партициях одной таблицы, показывается один раз, на родительской.

Логи

В предыдущих версиях поиск по логам был только для managed yandex базок. Появились OpenSearch / Elasticsearch и VictoriaLogs.

На странице анализа логи группируются по категориям: дедлоки, ожидания блокировок, отмененные запросы, чекпоинты, автовакуум, временные файлы, ошибки. У каждой категории выводятся доля записей и самые частые сообщения.

На табе “Планы” можно анализировать логи от auto_explain сгруппированные по запросу и форме плана. По каждой группе выводятся число планов, суммарное и максимальное время, p50 и p95, в дереве плана подсвечены последовательное чтение большой таблицы, ошибка оценки числа строк, сортировка на диске и резкий рост числа повторов узла.

Можно искать запросы, которым стало хуже: у них сменилась форма плана, пропал индекс или вырос p95.

Запросы, базы, сессии

На кластерах Postgres Pro без pg_stat_statements статистика запросов читается из pgpro_stats.

Отчёт по запросам, топ-10 и графики научились строиться по выбранной базе или по всему инстансу. В режиме инстанса у каждой строки указана её база.

В списке активных запросов показаны тип и событие ожидания, адрес клиента и состояние сессии; блокирующие ожидания подсвечены, фоновые приглушены.

MCP-коннектор

31 инструмент: список кластеров и ранжирование их здоровья, Health Score с трендом, разбивкой по базам и рекомендациями, топ и отчёт по запросам, снимки и их сравнение, активные и заблокированные сессии, индексы, таблицы, репликация, настройки кластера, wait events, соединения, риск wraparound и поиск по логам любого подключённого источника.

Часть инструментов возвращает не сырые счётчики, а готовый ответ. Разбор рекомендации Health Score называет сами объекты: таблицы с выключенным автовакуумом или низкой долей HOT-обновлений, базы у горизонта wraparound, сессии, удерживающие горизонт. Отчёт по неиспользуемым индексам работает по всему кластеру, можно ли удалить индекс. Рекомендации по индексам приходят с готовым DDL, запросами и долей нагрузки. Инструменты по вводу-выводу раскладывают чтение и запись между клиентами, автовакуумом, чекпойнтером и walwriter и показывают, как это менялось во времени.

Пять сценариев ведут модель по шагам: диагностика кластера, разбор Health Score, поиск возможностей для индексов, расследование медленных запросов, обзор парка кластеров. На каждом шаге один инструмент и критерий, как трактовать результат; сценарии рассчитаны и на модели без глубокого знания PostgreSQL. Базу знаний из шести разделов модель читает по запросу: правила Health Score с порогами и первыми действиями, коды проверок схемы, чтение рекомендаций по индексам, счётчики pg_stat_io, глоссарий wait events, типовые жалобы и цепочки инструментов для них. База знаний, сценарии и инструкции для модели есть на русском и английском.

Все инструменты read-only.

Ссылки

Исходный код, документация и полный список изменений: https://github.com/dbulashev/dasha

View the original on Хабр

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.