У меня есть вопрос о тестировании производительности запросов для представлений в красном смещении.
У меня есть две таблицы: table_a и table_b : - таблица a и таблица b имеютопределен другой ключ сортировки.- таблица А имеет 6 полей для ключа сортировки.- таблица b имеет 4 поля для ключа сортировки.- обе таблицы имеют некоторые имена / типы столбцов, но таблица a - это супер-набор таблиц b.
Я создал представление v_combined .Представление объединяет данные из таблицы a и таблицы b на основе запрошенных дат.Например, если запрос сделан до даты XYZ, представление будет исходной таблицей a.В противном случае он получает таблицу b.
create view as v_combined
select a as x, b as y, c as z, to_timestamp(time_field::TEXT, 'YYYYMMDD'):timestamp as date
from table_a
where date < "MY_DATE"
union all
select * from table_b
where date > "MY_DATE"
Я провел сравнение между представлением и соответствующей таблицей:
select count(*) from v_combined where date < "MY_DATE"
select count(*) from table_a where date < "MY_DATE"
select count(*) from v_combined where date > "MY_DATE"
select count(*) from table_b where date > "MY_DATE"
select * from v_combined where date < "MY_DATE" limit 10000
select * from table_a where date < "MY_DATE" limit 10000
select * from v_combined where date > "MY_DATE" limit 10000
select * from table_b where date > "MY_DATE" limit 10000
(1) и (2) имеют время выполнения, аналогичное ожидаемому.
(3) и (4) имеют время выполнения, аналогичное ожидаемому.
(5), кажется, имеет более длительное время выполнения, чем (6).
(7), кажется, имеет более длительное время выполнения, чем (8).
Каков наилучший способ проверить производительностьвид в красное смещение?