При рассмотрении всех задействованных полей индекс покрытия для каждой таблицы будет включать майские столбцы
t1: Y, F, H, A
t2: X, G, C, D, E
Насколько избирательны ЛЮБЫЕ критерии: t2.X, t2.G или t1.Y, t1.F, t1.H?
Если ни один из отдельных столбцов не является достаточно избирательным (в идеале 0,5% или менее), вы можете создать один или несколько покрывающих индексов, включающих несколько столбцов, например
t2 (G, X)
t1 (H, F, Y)
Примечание: Порядок столбцов в индексе очень важен - всегда ставьте сначала наиболее избирательный (тот, который делит данные столбца на самые разные наборы).
За счет хранилища вы можете сделать индекс COVER запросом, указав все необходимые столбцы в самом индексе.Это означает, что запрос вообще не должен возвращаться к данным таблицы.
create index ix_t2 on t2 (G,X) INCLUDE (C,D,E)
create index ix_t1 on t1 (H,F,Y) INCLUDE (A)
EDIT
Похоже, я вставил туда SQL Server DDL.В Oracle вам пришлось бы расширить индекс до значения t2 (G, X, C, D, E), но это увеличивает требования к избирательности для использования индекса, поскольку ключ индекса становится очень длинным.