聚集索引添加在值唯一的字段上效率较高,flag字段可以添加非聚集索引,可以考虑两者加个混合索引,具体还要看你的查询计划,通过测试比较
通过客户端改和命令应该没有区别吧

解决方案 »

  1.   

    我的数据主要是费用信息,同一个id或者同一个flag或者同一个日期都是有多条记录的,我自己在本地测试,看执行计划,如果不加索引的时候,它会给出提示让创建非聚集索引,然后有个include,包含了所有需要查询的列,如果在实际环境中也让我include所有列,也要按照它的提示改么?怎么根据实际情况决定应该给哪些加呢比较迷惑
      

  2.   

    flag的可能值有多少?用命令建索引最好,SSMS的方式会不同
      

  3.   

    flag的值分类就是0,1,2,具体每个值对应多少记录这个还没检索出来
      

  4.   

    CREATE CLUSTERED INDEX IX_table_date
        ON [table](date)
        INCLUDE (flag)
        WITH (DROP_EXISTING = ON)
    这样单独按 date 或同时用 date,flag 条件都可以用到索引。
      

  5.   

    @Tiger_Zhao, 这样建的话,where条件的顺序无所谓么?我看很多文档里说这个顺序不同也会直接影响效率