读书人

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

发布时间: 2012-08-08 14:32:45 作者: rapoo

同一表如何实现两个聚集索引的方法
表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 

读书人网 >SQL Server

热点推荐