У меня есть серия объединений, которые объединяют таблицу контактов с таблицей сделок с использованием операторов LIKE, CASE и подстановочных знаков. Запрос действительно медленный с выполнением: 1 м 4 с 244 мс и выборкой: 677 мс. Как бы улучшить производительность этого запроса?
from contacts left join deals on deals.associated_vids like
Case
when canonical_vid = split_part(associated_vids, ',', 1)
then concat(canonical_vid,'%')
when canonical_vid =
split_part(associated_vids, ',', (CHAR_LENGTH(associated_vids) - CHAR_LENGTH(REPLACE(associated_vids, ',', ''))) / CHAR_LENGTH(',')+1)
then concat('%',canonical_vid)
when canonical_vid is not null
then concat('%,', concat(canonical_vid,',%')) End
Я бы хотел максимально сократить время работы, желательно меньше минуты.