Создание индексов для версии 5.20.0
В версии ТестОпс 5.20.0 предусмотрен однократный запуск скриптов для создания индексов на одни из самых больших таблиц в вашей базе данных: test_result
и test_result_parameters
. Это необходимо для улучшения производительности ТестОпс.
Скрипты запускаются во время обновления инстанса ТестОпс. Скорость их выполнения зависит от:
- размеров таблиц в базе данных;
- количества обращений к этим таблицам;
- мощности хоста, где установлена база данных вашего инстанса ТестОпс.
Чтобы избежать простоя в работе вашего инстанса, мы рекомендуем запустить скрипты заранее, до установки версии 5.20.0, в часы наименьшей загрузки инстанса. В этом случае после установки обновления скрипты не будут запускаться повторно.
Проверьте свободное место в хранилище базы данных
Создание индексов на таблицы — ресурсоемкий процесс. Убедитесь, что в хранилище, которое используется вашей базой данных, достаточно свободного места:
Посчитайте размер таблиц
test_result
иtest_result_parameters
в вашей базе данных.Например:
sqlSELECT pg_size_pretty(pg_total_relation_size('test_result')) AS test_result_size;
sqlSELECT pg_size_pretty(pg_total_relation_size('test_result')) AS test_result_parameters_size;
Посчитайте, какое количество свободного места необходимо, чтобы создать индексы:
test_result_size * 0,22 + test_result_parameters_size * 0,8 + storage_space * 0,4
,где:
test_result_size
— размер таблицыtest_result
;test_result_parameters_size
— размер таблицыtest_result_parameters
;storage_space
— общий размер хранилища базы данных.Обеспечьте наличие требуемого свободного места.
Запустите скрипты
Запустите скрипты для создания индексов:
sql
CREATE INDEX CONCURRENTLY IF NOT EXISTS test_result_params_tr_id_inc_value_name_hidden_excluded_idx
ON test_result_parameters USING btree(test_result_id)
INCLUDE (value, name, hidden, excluded);
CREATE INDEX CONCURRENTLY IF NOT EXISTS test_result_launch_id_status_hidden_idx
ON test_result USING btree (launch_id, status, hidden);
CREATE INDEX CONCURRENTLY IF NOT EXISTS test_result_history_key_launch_id_idx
ON test_result USING btree (history_key, launch_id);
CREATE INDEX CONCURRENTLY IF NOT EXISTS test_result_launch_id_external_hidden_inc_tc_id_status_idx
ON test_result USING btree (launch_id, external, hidden)
INCLUDE (test_case_id, status);