当前位置: 代码迷 >> Sql Server >> 同一表怎么实现两个聚集索引的方法
  详细解决方案

同一表怎么实现两个聚集索引的方法

热度:81   发布时间:2016-04-27 12:07:44.0
同一表如何实现两个聚集索引的方法
表T数据量非常大。。。两字段:sflsh,sscbb

在做查询报表的时候,需要分别按

select * from t where sflsh=....


select * from t where sscbb=....

如果建立sflsh聚集索引,第一句非常快;
如果建立sscbb聚集索引,第二句非常快;

如果建立sflsh,sscbb复合聚集索引,第一句非常快,第二句慢;怎样解决这个问题呢?

------解决方案--------------------
探讨
表T数据量非常大。。。两字段:sflsh,sscbb

在做查询报表的时候,需要分别按

select * from t where sflsh=....


select * from t where sscbb=....

如果建立sflsh聚集索引,第一句非常快;
如果建立sscbb聚集索引,第二句非常快;

如果建立sflsh,sscbb复合聚集索引,第一句非常快,……

------解决方案--------------------
简单一个例子,索引视图
SQL code
CREATE TABLE dbo.test --创建表(    num decimal(4,2),    id int)GOCREATE CLUSTERED INDEX IX_TEST_TNAME ON dbo.test(num)  --创建聚集索引GO CREATE VIEW dbo.v_test with schemabinding --创建架构绑定视图AS SELECT num,id FROM dbo.testGO CREATE UNIQUE CLUSTERED INDEX IX_TEST_TNAME ON dbo.v_test(id) --是视图上构建唯一聚集索引GO
  相关解决方案