查询时在条件复合索引加其它查询,会不会优化?
如,在表employee列 yymmdd ,empid上 建立了复合索引,查询时,在 where 加了复合索引,还加其他条件,会不会使用复合索引进行优化。
如
select * from employee where yymmdd='2010-12-29' and empid='1222' and isOK=1
如,在表employee列 yymmdd ,empid上 建立了复合索引,查询时,在 where 加了复合索引,还加其他条件,会不会使用复合索引进行优化。
如
select * from employee where yymmdd='2010-12-29' and empid='1222' and isOK=1
你的字段一个开始日期 一个结束日期比如
GO
CREATE TABLE TB
(
ID INT,
日期 DATETIME,
姓名 NVARCHAR(20),
产量 INT
)
INSERT INTO TB
SELECT 1,'2010-10-09','张三',10 UNION ALL
SELECT 2,'2010-10-09','李四',20 UNION ALL
SELECT 3,'2010-10-09','王五',30 UNION ALL
SELECT 4,'2010-12-10','老六',40 UNION ALL
SELECT 5,'2010-12-10','李四',50 UNION ALL
SELECT 6,'2010-12-10','王五',60--非聚集索引
create index idex_日期_姓名 on TB(日期,姓名)
select * from TB where 日期='2010-10-09' and 姓名='张三'
--执行计划是table scan--聚集索引
create clustered index idex_日期 on TB(日期)
select * from TB where 日期='2010-10-09' and 姓名='张三'
--执行计划是clustered index seek
我的测试结果........
select * from employee where empid='1222' and yymmdd='2010-12-29' and isOK=1 会优化吗??
#2楼 得分:0回复于:2010-12-29 11:03:55会的,不放心可以看计划,如果是非聚集索引,会先根据索引条件筛选出一部分数据,再执行其它条件的筛选。
刚才楼上这位这样说。是否可以说得明白点呢?