Oracle复合索引并非所有字段都处于条件状态

时间:2018-01-03 11:30:53

标签: sql oracle oracle11g

请告诉我一些关于Oracle索引的信息,因为我不知道如何向Google询问这种情况。让我假装我有一张桌子

table T (
    Id key
    FKey1 int,
    FKey2 int,
    Date1 date,
    Date2 date,
    Name string,
    Surname string
)

并且除Id之外的所有这些字段都有一个复合索引。我有2个查询使用:

  1. 除姓名和姓氏之外的所有列;
  2. 除了Surname之外的所有列 - 并使用LIKE表达式搜索Name。
  3. 这个指数有效吗?如果没有,我该如何改进呢? ORM生成的查询只能使用索引:(

    真实索引列序列:

    Name
    Surname
    FKey1
    FKey2
    Date1
    Date2
    

1 个答案:

答案 0 :(得分:0)

它取决于在创建索引时声明的列的顺序..重要的是列更加selettiv或用于所有查询放在其他查询之前:在您的情况下

....

Surname ,  Name    //used by two user queries 

工作得更好
Name , surname // //used by oneuser queries 
相关问题