【发布时间】:2016-07-02 16:35:42
【问题描述】:
我正在使用 Oracle 11g。我有数十万条记录的表。
我的查询:
Select a1,a2,..... n
from tbl
where a1=val1 and a2=val2 and a3=val3 and a4=val4 and a5=val5
为了提高在where条件下的查询性能,我必须为哪一列创建索引?
【问题讨论】:
-
也可能需要标准化。为什么您的表格水平使用 5 个不同的列?这有什么意义,即使是 2NF 形式?这是事实表吗?
-
@clifton 其实这是一个面试问题
-
其实解决问题的方法有很多,也有很多隐藏的bug和秘密。最佳答案“视情况而定”。您可以在每一列上创建单独的索引,或者作为点@scaisEdge“在列(a1、a2、a3、a4、a5)上”您还可以创建分区、重构表等。你告诉我们这是一个面试问题,那么你应该提供尽可能多的变体。
标签: oracle performance query-optimization