首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-08-08 
同一表如何实现两个聚集索引的方法表T数据量非常大。。。两字段:sflsh,sscbb在做查询报表的时候,需要分别按se

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

热点排行