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

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

Изменение настроек autovacuum для тестовой таблицы pgbench_accounts: autovacuum_vacuum_scale_factor = 0 autovacuum_vacuum_threshold = 1000 autovacuum_analyze_scale_factor = 0 autovacuum_analyze_threshold = 1000 autovacuum_vacuum_insert_scale_factor = 0 autovacuum_vacuum_insert_threshold = 1000 autovacuum_vacuum_cost_delay = 1 autovacuum_vacuum_cost_limit = 2000 ALTER TABLE pgbench_accounts SET (fillfactor = 100); ALTER TABLE pgbench_tellers SET (fillfactor = 100); ALTER TABLE pgbench_branches SET (fillfactor = 100); VACUUM FULL pgbench_branches ; VACUUM FULL pgbench_tellers ; VACUUM FULL pgbench_accounts ; Эксперимент-2 Эксперимент-5 Количество запусков autovacuum: 53 / 17 Доля HOT UPDATE для таблицы pgbench_accounts: 99.04% / 0 Эксперимент-2 Эксперимент-5 Относительное изменение расширенной статистики очистки в эксперименте-5 по сравнению с экспериментом-2: Эксперимент-2 Эксперимент-5 Относительное изменение расширенной статистики очистки в эксперименте-5 по сравнению с экспериментом-
Оглавление

Начало

Эксперимент-2/Эксперимент-5 Лишние индексы при fillfactor = 100

Эксперимент-2 : autovacuum tuning

Изменение настроек autovacuum для тестовой таблицы pgbench_accounts:

autovacuum_vacuum_scale_factor = 0
autovacuum_vacuum_threshold = 1000
autovacuum_analyze_scale_factor = 0
autovacuum_analyze_threshold = 1000
autovacuum_vacuum_insert_scale_factor = 0
autovacuum_vacuum_insert_threshold = 1000
autovacuum_vacuum_cost_delay = 1
autovacuum_vacuum_cost_limit = 2000

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

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

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

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

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

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

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

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

-3

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

-4

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

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

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

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

-5

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

-6

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

  • Total vacuum time Общее время, затраченное на очистку этой таблицы : 9.51%
  • Delay vacuum time Время простоя в точке задержки при выполнении операций очистки для этой таблицы : 15.49%
  • Read I/O time Время, затраченное операциями очистки для этой таблицы на чтение блоков БД : -6,78%
  • Write I/O time Время, затраченное операциями очистки для этой таблицы на запись блоков БД: 49,61%
  • User CPU time Время использования процессора в пользовательском режиме при очистке таблиц этой БД: 3,18%
  • System CPU time Время использования процессора в режиме ядра при очистке таблиц этой БД : -12,98%
  • Total fetched Общее количество блоков БД, полученных операциями очистки, выполненными для этой таблицы : -46,76%
  • Heap fetched Общее количество блоков, полученных из этой таблицы операциями очистки, выполненными для неё: -58,45%
  • Scanned Количество страниц, к которым обращались операции очистки, выполненные для этой таблицы: -62,84%

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

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

-7

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

-8

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

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

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

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

-9

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

-10
  • Live Оценочное количество «живых» строк : практически не изменилось
  • Dead Оценочное количество «мёртвых» строк : 186,99%
  • %Dead Процент «мёртвых» строк среди всех строк таблицы : -0,15%
  • Size Размер таблицы : -0,81%