当前位置: 代码迷 >> Sql Server >> SqlServer目录创建疑问
  详细解决方案

SqlServer目录创建疑问

热度:9   发布时间:2016-04-24 09:24:31.0
SqlServer索引创建疑问
select  a,b,c,..... from table where flag=1 and date>=‘2014-01-01’
因为表数据记录有上亿多条,想按时间范围分开查询,给日期建了聚集索引,那有时候条件里还有flag=1这种情况,还需要给flag这个字段再建个非聚集索引么?
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
另,如果我想换个列重建聚集索引,用ssms删除再新建和用命令重建有什么区别么?
我看帮助文档都是写的命令加参数方式,不知道跟ms有什么不同
------解决思路----------------------
聚集索引添加在值唯一的字段上效率较高,flag字段可以添加非聚集索引,可以考虑两者加个混合索引,具体还要看你的查询计划,通过测试比较
通过客户端改和命令应该没有区别吧
------解决思路----------------------
CREATE CLUSTERED INDEX IX_table_date
    ON [table](date)
    INCLUDE (flag)
    WITH (DROP_EXISTING = ON)

这样单独按 date 或同时用 date,flag 条件都可以用到索引。
------解决思路----------------------
通常应该是无所谓的。
为了防止不同版本有差异,那就按相同的次序写好了。
  相关解决方案