pg_analyse
Анализатор для БД PostgreSQL.
Репозиторий: https://github.com/idlesign/pg_analyse
Автор:
Игорь Стариков
Приложение можно использовать и как модуль Python и как утилиту командной строки; как для ручного сбора информации, так и в процессах непрерывной интеграции.
Утилита командной строки умеет выводить результаты анализа как в табличном виде, так и в виде
Предоставляет информацию о:
SQL, используемые в инспекциях, доступны здесь.
Из кода:
Из командной строки:
Смотрите также:
* Анонс pg_analyse 0.2.2 — инспектируем PostgreSQL
Утилита командной строки умеет выводить результаты анализа как в табличном виде, так и в виде
JSON
для упрощения последующей обработки.Предоставляет информацию о:
- Здоровье индексов (раздутость, дубли, неиспользуемость, пр.);
- Таблицах без первичных ключей и индексов;
- Самых медленных запросах.
SQL, используемые в инспекциях, доступны здесь.
Пример использования
Из кода:
from pg_analyse.toolbox import Analyser, analyse_and_format
analyser = Analyser(dsn='user=test')
inspections = analyser.run()
inspection = inspections[0]
print(inspection.alias)
print(inspection.result)
# или то же, но одной строкой
out = analyse_and_format()
На заметку
Чтобы не указывать DSN подключения к PostgreSQL каждый раз, можно присвоить его переменной среды
PG_ANALYSE_DSN
. Если установлена envbox , то эту переменную можно положить в .env
файл.Из командной строки:
; Показать известные инспекции и их описния:
$ pg_analyse inspections
; Используем DSN из переменной окружения (см. подсказку выше),
; и выводим сложные значения (например, объём данных) в человекочитаемом виде:
$ pg_analyse run --human
; Запускаем только некоторые инспекции, переопределив некоторые параметры.
; При помощи ключевого слова "common" можно передать параметр сразу всем инспекциям.
$ pg_analyse run --one idx_unused --one idx_bloat --args "idx_bloat:schema=my,bloat_min=20;common:schema=my"
; Задаём DSN явно:
$ pg_analyse run --dsn "host=myhost.net port=6432 user=test password=xxx sslmode=verify-full sslrootcert=/home/my.pem"
; Локальное подключение к пользователем postgres и паролем:
$ pg_analyse run --dsn "host=127.0.0.1 user=postgres password=yourpass"
; Выводим результаты анализа в виде json (вместо табличного представления):
$ pg_analyse run --fmt json
Смотрите также:
* Анонс pg_analyse 0.2.2 — инспектируем PostgreSQL
На заметку
У нас есть новостная группа в Telegram. Там же можно обсудить интересующие вопросы. Ссылка в самом низу страницы.