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

怎么在SQL的Select中强制使用指定的索引

2012-01-28 
如何在SQL的Select中强制使用指定的索引因为表里面存在两个索引I1I2现在想在任何Select的时候用其中的指定

如何在SQL的Select中强制使用指定的索引
因为表里面存在两个索引I1   I2   现在想在任何Select的时候   用其中的指定的一个索引   I2   请问应该怎么做那?谢谢!


[解决办法]
select columns from table(index i2)
[解决办法]
select * from tb with(index(指定的索引名))
[解决办法]
--测试数据
CREATE TABLE tb(a int,b int,c int)
CREATE CLUSTERED INDEX IDX_tb_a ON tb(a)
CREATE INDEX IDX_tb_b ON tb(b)
CREATE INDEX IDX_tb_c ON tb(c)
INSERT tb SELECT 1,3,2
INSERT tb SELECT 2,2,1
INSERT tb SELECT 3,1,3

--指定使用字段a上的索引
SELECT * FROM tb WITH(INDEX=IDX_tb_a)
/*--结果
a b c
---------------- ------------------ -----------
1 3 2
2 2 1
3 1 3
--*/

--指定使用字段b上的索引
SELECT * FROM tb WITH(INDEX=IDX_tb_b)
/*--结果
a b c
---------------- ------------------ -----------
3 1 3
2 2 1
1 3 2
--*/

--指定使用字段c上的索引
SELECT * FROM tb WITH(INDEX=IDX_tb_c)
/*--结果
a b c
---------------- ------------------ -----------
2 2 1
1 3 2
3 1 3
--*/

DROP TABLE tb
[解决办法]
如果有多个相似的索引,无法在属性中设置哪个是主索引。

可以充分利用聚集索引。

热点排行