Это очень трудно сказать, не видя запросов и планов выполнения ... но инстинктивно я бы сказал, что # 2, вероятно, будет наиболее эффективнымИндекс значительно облегчит для Oracle поиск данных в вашей таблице.Конечно, чрезмерная индексация может также вызвать проблемы с производительностью.
Я не уверен, что динамические запросы и индексы имеют какое-либо отношение друг к другу.Если ваша таблица имеет индекс, запрос (динамический или нет) сможет использовать индекс.