• /
  • /

Анализ схемы данных (DB Inspector)

Материалы к уроку

Попасть на страницу «DB inspector» можно, находясь внутри экземпляра, слева в выпадающем меню.
На странице «DB Inspector» отображается информация о базах данных на текущем экземпляре PostgreSQL. В таблице представлены следующие данные:
  1. Название базы данных.
  2. Размер базы данных.
  3. Локальный язык кодирования.
  4. Кодировка базы данных.
  5. Владелец базы данных.
  6. Общее количество сессий.
  7. Общее количество блокировок.
  8. Доступность базы данных для агента.
Для анализа схемы данных, нажмите кнопку «Inspect».
На странице инспектора выбранной базы данных предоставлена следующая информация:
  • владелец базы данных
  • кодировка базы данных
  • табличное пространство
  • ограничение на количество подключений
  • общее количество схем
  • общее количество таблиц
  • общее количество индексов
  • общее количество функций
  • размер базы данных
  • установленные расширения (есть пагинация).
  • список индексов (есть пагинация)
  • список функций
На странице также представлена статистика для выбранной базы данных, включая:
  • количество полученных строк
  • количество возвращенных строк
  • количество успешно завершенных транзакций
  • количество отмененных транзакций
  • количество эксклюзивных блокировок
  • количество добавленных строк
  • количество обновленных строк
  • количество удаленных строк
  • количество созданных временных файлов
  • количество записанных временных файлов
  • количество прочитанных блоков данных
  • информация о состоянии счетчика транзакций
Все графики можно увеличить для более подробного анализа. Временной интервал данных можно настроить в правом верхнем углу.

Healthchecks

Внутри инспектора, справа от статистических данных расположено окно с хелсчеками, чтобы их загрузить необходимо кликнуть на кнопку «Collect data».

Виды хэлсчеков

Проблемные:
1. Таблицы с битыми индексами.
2. Таблицы с заимствованными ключами без индексов.
2. Таблицы с заимствованными ключами, с разным типом данных на ключах.

Предупреждения:
1. Таблицы в которых есть индекс, на который нужно посмотреть и принять решение, сделать ли его частичным.
2. Таблицы, в которых есть индексы, в которых более 50% пустых значений. Интересный показатель, потому что, может быть, здесь нужно создать другой тип индекса, чтобы не тратить место.
3. Таблицы с самым большим количеством bloat.
4. Таблицы, по которым больше всего идёт течение seqscans.
5. Таблицы, в которых есть неиспользуемые индексы.
6. Таблицы, в которых есть повторяющиеся индексы.
7. Таблицы с низким коэффициентом горячих обновлений.
8. Таблицы с возможной проблемой автоанализа.
9. Таблицы с потенциальными проблемами автоотчистки.
10. Таблицы без уникальных индексов.

Информационные:
  1. Таблицы наибольшего размера.
  2. Индексы наибольшего размера.
  3. Самые читаемые таблицы.

При открытии Healthcheck мы попадаем на страницу «Overview», на ней представлен список таблиц, в которых были обнаружены проблемы.
На странице «Overview» предоставлена следующая информация о таблице:
  • владелец
  • тип таблицы
  • индикатор таблицы
  • примерное количество строк
  • коэффициент заполнения
  • наследование от других таблиц
  • наличие TOAST
  • системная таблица или нет
  • табличное пространство
  • карта видимости в процентах
Затем представлены результаты хелсчека, включая название, описание и рекомендации по решению обнаруженных проблем. Стрелочки над таблицей указывают на наличие нескольких проблем в таблице, которые можно просматривать поочередно. В некоторых случаях под таблицей могут появляться точки, указывающие на наличие проблем данного типа в нескольких элементах хелсчека.

Вторая вкладка на странице хелсчека называется «Statistics» и содержит различные статистические данные о выбранной таблице.
На странице предоставлена следующая информация о таблице:
Table size (Размер таблицы):
  • общий размер таблицы и индексов (в МБ)
  • размер таблицы (в МБ)
  • размер TOAST таблицы (в КБ)
Bloat size (Размер раздувания таблицы):
  • размер раздувания (в МБ)
  • соотношение раздувания и данных
  • чистый размер таблицы без раздувания (в МБ)
Indexes size & Count (Размер и количество индексов):
  • общий размер индексов на таблице
  • процентное соотношение размера индексов к размеру таблицы
  • количество индексов
Table width & length (Ширина и длина таблицы):
  • количество колонок (ширина)
  • количество строк (длина)
Hot update ratio (Отношение горячих обновлений):
  • эффективность функции обновления в реальном времени
Seq vs index scans (Сексканы и индекс сканы):
  • соотношение
  • количество сексканов
  • количество индексных сканов
Write activity (Активность записи данных в таблицу):
  • количество записей в таблице
  • количество вставок
  • количество обновлений
  • количество удалений
Autoanalyze stat (Информация об автоанализе):
  • отношение автоанализа
  • количество строк после анализа
  • порог срабатывания автоанализа
  • время последнего автоанализа
  • количество автоанализов
Autovacuum stat (Статистика по автовакууму):
  • соотношение
  • количество мертвых строк
  • порог срабатывания автовакуума
  • время последнего автовакуума
  • количество автовакуумов
Read activity (Активности на чтение таблицы):
  • соотношение к чтению
  • последовательное чтение версий строк
  • извлечённые версии индексных записей
Analyze statistics (Статистика по анализу):
  • дата последнего анализа
  • количество анализов
Vacuum statistics (Статистики ручного вакуума):
  • дата последнего вакуума
  • количество вакуумов
Ниже представлено окно, в котором можно посмотреть в виде гистограммы кардинальность данных в таблицах, в колонках таблиц по строкам.
Справа есть возможность выбирать имя столбца.
Кардинальность данных важна, чтобы понимать целесообразность создания индексов.