Найти в Дзене
Postgres DBA

Влияние лишних индексов при fillfactor = 50

Уменьшение значения параметра fillfactor для тестовых таблиц ALTER TABLE pgbench_accounts SET (fillfactor = 50); ALTER TABLE pgbench_tellers SET (fillfactor = 50); ALTER TABLE pgbench_branches SET (fillfactor = 50); VACUUM FULL pgbench_branches ; VACUUM FULL pgbench_tellers ; VACUUM FULL pgbench_accounts ; CREATE INDEX pgbench_accounts_idx_1 ON pgbench_accounts ( abalance ); CREATE INDEX pgbench_accounts_idx_2 ON pgbench_accounts ( filler); CREATE INDEX pgbench_branches_idx_1 ON pgbench_branches (bbalance); CREATE INDEX pgbench_branches_idx_2 ON pgbench_branches (filler); CREATE INDEX pgbench_tellers_idx_1 ON pgbench_tellers (tbalance); CREATE INDEX pgbench_tellers_idx_2 ON pgbench_tellers (filler); Эксперимент-3 Эксперимент-4 Количество запусков autovacuum: 53 / 13 Доля HOT UPDATE для таблицы pgbench_accounts: 99.04% / 0 Эксперимент-3 Эксперимент-4 Относительное изменение расширенной статистики очистки в эксперименте-4 по сравнению с экспериментом-3: Эксперимент-3 Эксперимент-4 Относи
Оглавление

Начало

Эксперимент-3/Эксперимент-4 Лишние индексы при fillfactor = 50

Эксперимент-3 : fillfactor = 50

Уменьшение значения параметра fillfactor для тестовых таблиц

ALTER TABLE pgbench_accounts SET (fillfactor = 50);
ALTER TABLE pgbench_tellers SET (fillfactor = 50);
ALTER TABLE pgbench_branches SET (fillfactor = 50);
VACUUM FULL pgbench_branches ;
VACUUM FULL pgbench_tellers ;
VACUUM FULL pgbench_accounts ;

Эксперимент-4 : fillfactor = 50 + лишние индексы

CREATE INDEX pgbench_accounts_idx_1 ON pgbench_accounts ( abalance );
CREATE INDEX pgbench_accounts_idx_2 ON pgbench_accounts ( filler);
CREATE INDEX pgbench_branches_idx_1 ON pgbench_branches (bbalance);
CREATE INDEX pgbench_branches_idx_2 ON pgbench_branches (filler);
CREATE INDEX pgbench_tellers_idx_1 ON pgbench_tellers (tbalance);
CREATE INDEX pgbench_tellers_idx_2 ON pgbench_tellers (filler);

Операционная скорость

Ось X - точка наблюдения .Ось Y - операционная скорость.
Ось X - точка наблюдения .Ось Y - операционная скорость.

Операционная скорость за весь период теста

  • Средняя относительная разница операционной скорости в экспериментах 4 и 3 составила : -8.72%

Статистика autovacuum - Top tables by updated/deleted tuples

Эксперимент-3

-3

Эксперимент-4

-4

Количество запусков autovacuum: 53 / 13

Доля HOT UPDATE для таблицы pgbench_accounts: 99.04% / 0

Статистика autovacuum - Top tables by vacuum time spent

Эксперимент-3

-5

Эксперимент-4

-6

Относительное изменение расширенной статистики очистки в эксперименте-4 по сравнению с экспериментом-3:

  • Total vacuum time Общее время, затраченное на очистку этой таблицы : 27,55%
  • Delay vacuum time Время простоя в точке задержки при выполнении операций очистки для этой таблицы : 50,13%
  • Read I/O time Время, затраченное операциями очистки для этой таблицы на чтение блоков БД : 23,54
  • Write I/O time Время, затраченное операциями очистки для этой таблицы на запись блоков БД: 90,68%
  • User CPU time Время использования процессора в пользовательском режиме при очистке таблиц этой БД: 55,27%
  • System CPU time Время использования процессора в режиме ядра при очистке таблиц этой БД : 32,28%
  • Total fetched Общее количество блоков БД, полученных операциями очистки, выполненными для этой таблицы : -10,04%
  • Heap fetched Общее количество блоков, полученных из этой таблицы операциями очистки, выполненными для неё: -23,80%
  • Scanned Количество страниц, к которым обращались операции очистки, выполненные для этой таблицы: -28,62%

Статистика autovacuum -Top tables by dead tuples vacuum left

Эксперимент-3

-7

Эксперимент-4

-8

Относительное изменение расширенной статистики очистки в эксперименте-4 по сравнению с экспериментом-3:

  • Dead tuples left Общее количество «мёртвых» кортежей, оставленных операциями очистки в этой таблице из-за видимости этих кортежей в транзакциях : -38,01%
  • Dead tuples deleted Общее количество «мёртвых» кортежей, удалённых операциями очистки из этой таблицы : -40,60%
  • %Eff Эффективность очистки, оцениваемая по количеству удалённых кортежей. Это процент «мёртвых» кортежей, удалённых из этой таблицы, от всех «мёртвых» кортежей, подлежащих удалению из этой таблицы: -0,91%

Статистика autovacuum -Top tables by dead tuples ratio

Эксперимент-3

-9

Эксперимент-4

-10
  • Live Оценочное количество «живых» строк : практически не изменилось
  • Dead Оценочное количество «мёртвых» строк : 100.20%
  • %Dead Процент «мёртвых» строк среди всех строк таблицы : 1.34%
  • Size Размер таблицы : Не изменился.