SQL Server 2008 - 索引表的优点

Siv*_*ran 1 sql-server-2008

SQL Server 2008上索引表的主要优点是什么?

请用例子说明(如果可能的话)..

谢谢

小智 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)

在其他条件相同的情况下,如果创建索引,查询会更快.但要小心,太多的索引实际上可能会降低性能.