SQL Server非聚集索引笔记
创建表TTest
CREATE TABLE [dbo].[TTest](
[TestID] [INT] NOT NULL,
[TestName] [VARCHAR](50) NOT NULL,
[No] [INT] NOT NULL
) ON [PRIMARY]
在表TTest上创建联合索引
CREATE NONCLUSTERED INDEX [NonClusteredIndex-Test] ON [dbo].[TTest]
(
[TestID] ASC,
[TestName] ASC,
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
where条件不带索引列集合首位查询
SELECT TestID,TestName,[No]
FROM OperAllowDB.dbo.TTest
WHERE TestName= '3' AND No = 2
SQL执行计划:
可以看出使用的是索引扫描。
where条件带索引列集合首位查询
SELECT TestID,TestName,[No]
FROM OperAllowDB.dbo.TTest
WHERE TestID = 2
SQL查询计划:
可以看出使用的是索引查找。