我有加入 3 个表的以下要求
a) Table T1 - large physical table with 100 Million rows
Index columns: C1, C2, C3 in this order
b) Table T2 - Temp table with 50 records
contains C2 & additional columns. No Index
c) Table T3 - Temp table with 100 records
contains C3 & additional columns. No Index
表 T2 和 T3 没有公共列
我尝试从 T1、T2、T3 中提取数据,如下所示:
Select T1.*, T2.*, T3.*
from T1
Inner join T2 (on T1.C2 = T2.C2)
Inner join T3 (T1.C3 = T3.C3)
where
T1.C1 = a constant value (coming from my program).
对上述查询的解释表明,在 T1 上,仅使用 1 列执行了索引扫描。(我相信它是 T1.C3,因为我提供了 WHERE 子句)
查询执行良好,但花费的时间稍长。有没有更好的方法来对上述要求的查询进行编码?
非常感谢任何输入