小智 10
索引提供了一种提高数据访问查询性能的方法.假设您有一个包含不同标识列的表.在每个列或一起查询的列组合上添加索引可以缩短响应时间.
示例:您有一个包含列的User表:
FirstName | LastName | ZipCode
Run Code Online (Sandbox Code Playgroud)
如果要查询姓氏,请在LastName上添加索引,例如:
SELECT * FROM User where LastName = 'SMITH'
Run Code Online (Sandbox Code Playgroud)
指数可能是:
CREATE NONCLUSTERED INDEX [MyIndex] ON [User]
(
[LastName] ASC
) WITH (
PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF,
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
)
ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
或者,如果要同时查询这些列,请在2列上放置索引:
SELECT * FROM User where LastName = 'SMITH' and ZipCode = '14222'
Run Code Online (Sandbox Code Playgroud)
指数可能是:
CREATE NONCLUSTERED INDEX [MyIndex] ON [User]
(
[LastName] ASC,
[ZipCode] ASC
) WITH (
PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF,
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
)
ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
在其他条件相同的情况下,如果创建索引,查询会更快.但要小心,太多的索引实际上可能会降低性能.