Транзакция журнала базы данных PostgreSQL - PullRequest
0 голосов
/ 20 февраля 2019

Я учусь на последнем курсе, и сейчас делаю свою диссертацию.Мое название - «Предложение по индексу на основе анализа журнала».В этом проекте будет проанализирован журнал транзакций PostgreSQL, чтобы дать рекомендации по индексу для базы данных, которая будет тестироваться.

В этом исследовании будет разработан инструмент рекомендации по индексу, анализирующий атрибут, к которому часто обращаются (используя инструкцию SELECT).

Но я обнаружил, что трудно найти файл журнала PostgreSQL.У меня вопрос, где я могу найти набор данных транзакций журнала PostgreSQL?Или, может быть, другой набор данных транзакций журнала базы данных?

1 Ответ

0 голосов
/ 21 февраля 2019

Вы смешиваете журнал транзакций (WAL) и обычный текстовый файл журнала.

Последний содержит операторы (если конфигурация настроена так), в то время как журнал транзакций не содержит оператороввообще, просто двоичная информация о том, что изменилось в каком блоке.

Вы не сможете порекомендовать индекс, просто посмотрев запрос, я тоже не могу этого сделать.

У меня есть для вас предложение: если вы хотите написать инструмент, который предлагает индексы, он должен принять вывод EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) SELECT /* your query */ в качестве ввода.

Более того, инструмент должен быть подключен к базе данных, чтобытаблица запросов и метаданные индекса (и, возможно, статистика).Это делает вас зависимым от версии базы данных, потому что метаданные могут меняться (и делать - см. Секционированные таблицы), но это не будет вас сильно беспокоить в дипломной работе.

Задача все еще не проста (запросоптимизация - это ИИ), но тогда у вас есть хотя бы шанс.

...