Вы включили план объяснения, но не предоставили никакой информации о структуре таблицы, распределении данных, количестве элементов и объемах. Предполагая, что ваши индексы точны, и вы имеете равномерное распределение данных, запрос должен обработать более 12 миллионов строк, а не 100 000. Но даже тогда это относительно плохая производительность. Но вы никогда не говорили нам, на каком оборудовании это находится, ни фоновой загрузке.
Запрос с таким количеством объединений всегда будет медленным - нужны ли они все?
основная проблема - в таблице p, которая сканирует всю таблицу
Полное сканирование таблицы не является плохим автоматически. Стоимость разыменования поиска индекса в отличие от потокового чтения примерно в 20 раз больше. Поскольку единственным ограничением, которое вы применяете к этой таблице, является ее объединение с другими таблицами, в вопросе, который вы задали, нет ничего, что указывало бы на то, что есть много возможностей для улучшения этого.