`

SQL Server 创建和使用索引

 
阅读更多

创建索引:

1)在SQL Server Management Studio中,选择并右击要创建索引的表,从弹出菜单中选择设计,打开表设计器。右键单击表设计器,从弹出菜单中选择索引/命令,打开索引/对话框。对话框中列出了已经存在的索引,如下图所示。

2)单击添加按钮。在选定的主/唯一键或索引框显示系统分配给新索引的名称。

3)在属性下选择要创建索引的列。可以选择多达16列。为获得最佳性能,最好只选择一列或两列。对所选的每一列,可指出索引是按升序还是降序组织列值。

4)如果要创建唯一索引,则在是唯一的属性中选择

5)设置完成后,单击确定按钮。

6)当保存表时,索引即创建在数据库中。

使用CREATE INDEX语句创建索引:

CREATE[ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX索引名

ON {表名|视图名} (列名[ ASC | DESC ] [ ,...n ] )

例:

在数据库HrSystem中为表Employees创建基于IDCard列的唯一索引IX_Employees,可以使用以下命令:

USE HrSystem

GO

CREATE UNIQUE NONCLUSTERED INDEX [IX_Employees]ONdbo.Employees(IdCard)

GO

例:

为表Employees创建基于列IDCard的唯一、聚集索引IX_Employees1,可以使用以下命令:

USEHrSystem

GO

CREATE UNIQUE CLUSTERED INDEX [IX_Employees1] ON [dbo].[Employees](IdCard)

GO

需要注意的是,在一个表中只允许存在一个聚集索引。因此,如果表Employees中已经存在一个聚集索引,则执行上面的语句时将会提示下面的错误信息。

消息1902,级别16,状态3,第1

无法对表'dbo.Employees'创建多个聚集索引。请在创建新聚集索引前删除现有的聚集索引'PK__Employee__263E2DD300551192'

例:

对表Employees的列Emp_name按照降序创建索引,可以使用以下命令:

USEHrSystem

GO

CREATENONCLUSTERED INDEX [IX_Employees2] ON [dbo].[Employees]

(

[Emp_name] DESC

)

GO

CREATE INDEX语句中使用INCLUDE子句,可以在创建索引时定义包含的非键列,其语法结构如下:

CREATENONCLUSTERED INDEX 索引名

ON { 表名| 视图名 } ( 列名 [ ASC | DESC ] [ ,...n ] )

INCLUDE (<列名1>, <列名2>, [,… n])

例:
在表Employees上创建非聚集索引IX_Wage,索引中的键列为Wage,非键列为Emp_nameSexTitle,具体语句如下:

USEHrSystem

GO

CREATENONCLUSTERED INDEX IX_Wage

ON Employees ( Wage )

INCLUDE (Emp_name, Sex, Title)

GO

例:

在创建索引IX_Wage后,当表Employees中的数据量比较大时,执行下面的SELECT语句将会明显地改进查询效率。

USEHrSystem

GO

SELECTEmp_name, Sex, Title, Wage

FROMEmployees

WHEREWage BETWEEN 1000 AND 3000

GO

修改索引:

SQL Server Management Studio中,选择并右击要创建索引的表,从弹出的菜单中选择设计表,打开表设计器。右键单击表设计器,从弹出菜单中选择索引/命令,打开索引/对话框,并查看已经存在的索引及修改索引的属性信息。
也可以使用ALTER INDEX语句修改索引,其基本语法如下:

ALTER INDEX { 索引名| ALL }

ON <表名|视图名>

{ REBUILD | DISABLE| REORGANIZE }[ ; ]

ALTER INDEX语句的参数比较复杂,这里只介绍它的基本使用情况。参数说明如下:
REBUILD指定重新生成索引。
DISABLE指定将索引标记为已禁用。
REORGANIZE指定将重新组织的索引叶级。
例:

要禁用索引IX_Employees,可以使用下面的语句:

USE HrSystem

GO

ALTERINDEX IX_Employees ON Employees DISABLE

GO

删除索引:
SQL Server Management Studio中,选择并右击要创建索引的表,从弹出的菜单中选择设计表。打开表设计器。右键单击表设计器,从弹出菜单中选择索引/命令,在打开的索引/对话框中列出了已经存在的索引。单击删除按钮,即可删除索引信息。

DROP INDEX 表名.索引名|视图名.索引名[ ,...n ]


分享到:
评论

相关推荐

    sql server创建索引

    在SQL Server中,创建索引是一项关键的数据库优化技术,旨在加速数据检索速度,提高查询性能。本文将深入探讨如何在SQL Server中创建索引,包括理解不同类型的索引、索引的创建语法以及如何利用索引提升数据库性能。...

    SQLServer视图及索引的创建及使用

    资源名称:SQL Server 视图及索引的创建及使用内容简介: 本文档主要讲述的是SQL Server 视图及索引的创建及使用;目的是通过企业管理器和Transact_SQL语句对视图进行创建、修改和删除通过企业管理器。希望本文档会给...

    sql server 重新组织和重新生成索引

    SQL Server 重新组织和重新生成索引 在 SQL Server 中,索引的碎片可能会对查询性能产生影响,因此需要对索引进行维护。SQL Server 2005 提供了重新组织和重新生成索引的功能,以修复索引碎片。 重新组织索引 ...

    SQL Server 索引中include的魅力(具有包含性列的索引)

    SQL Server 索引中 include 的魅力(具有包含性列的索引) SQL Server 索引中 include 的魅力(具有包含性列的索引)是指在非聚集索引中添加非键列,以扩展索引的功能,提高查询性能。通过将非键列添加到非聚集索引...

    SQLserver索引创建语句.txt

    SQLserver索引创建语句

    SqlServer性能优化高效索引指南

    因此,合理地创建和维护索引是优化SqlServer性能的重中之重。 一、索引的存储效率 SqlServer中的索引页是存储索引数据的基本单位,通常每个索引页大小为8KB,其中标头占96字节,剩余的8060字节用于存储数据行和行...

    SQLServer索引碎片和解决方法

    SQLServer中的索引碎片是影响数据库性能的重要因素,它分为外部碎片和内部碎片两种类型。外部碎片发生在索引页不在其逻辑顺序上时,导致查询过程中需要额外的页切换,尤其是对于返回有序结果集的查询,这将显著降低...

    SQL Server和Oracle中索引介绍

    SQL Server和Oracle是两种广泛应用的关系型数据库管理系统,它们都支持使用索引来提升数据查询的效率。索引是一种特殊的数据结构,允许数据库系统快速定位和访问数据行,类似于书籍的目录。 在SQL Server中,索引...

    SQL Server 2000数据库中如何重建索引

    在SQL Server 2000中,有两种主要的方式来重建索引:使用`CREATE INDEX`语句的`DROP_EXISTING`子句,以及使用`DBCC DBREINDEX`语句。 1. `CREATE INDEX` with `DROP_EXISTING`: 这种方法允许你在不删除旧索引的...

    SQL_Server视图和索引

    ##### 3.2 创建索引 - **创建非聚集索引**:非聚集索引是一种索引类型,它不按物理顺序存储数据行,而是根据索引键值进行排序。 ```sql CREATE UNIQUE NONCLUSTERED INDEX ind_cp1 ON 产品 (产品名称 DESC) WITH...

    利用索引提高SQLServer数据处理效率

    在SQL Server数据库中,索引是提升数据处理效率的...合理使用聚簇索引、非聚簇索引和覆盖索引,结合对查询模式的深入理解和系统负载的实时监控,可以显著提高SQL Server的数据处理效率,从而提升整个应用系统的性能。

    SQL Server数据库实验指导书 实验教程 数据库实验05 视图的创建与使用.pdf

    2.掌握SQL Server Management Studio的启动和使用。 3.掌握SQL Server 2005服务器的配置和注册。 4.掌握SQL Server 2005查询的基本使用。 5.掌握应用SQL Server Management Studio创建数据库的方法。 6.掌握应用SQL ...

    SQL SERVER建立索引.pdf

    除了使用SQL语句之外,还可以使用SQL Server Management Studio (SSMS)的图形界面工具来创建索引。在SSMS中,可以通过右键点击表,选择“设计”选项卡,然后点击“索引/键”按钮来创建索引。 #### 六、创建索引的...

    sqlserver 2008 查找缺失索引

    - **`sys.dm_db_missing_index_columns`**:提供索引使用情况的信息,包括列如何被查询优化器使用的详细情况。 - **`sys.dm_db_missing_index_details`**:提供关于缺失索引的具体信息,包括表名、列名以及是否为...

    如何设置SQL Server数据库全文索引服务

    为了在SQL Server表中创建全文索引,必须遵循特定步骤: 1. 首先,你需要选择含有你要建立全文索引的列的表。这是关键,因为全文索引只能应用于具有唯一索引的表。唯一索引确保了每行数据的唯一性,这对于全文索引...

    详解SQL Server表和索引存储结构

    ### 详解SQL Server表和索引存储结构 #### 一、引言 SQL Server作为一款广泛使用的数据库管理系统,其内部的存储结构对于优化查询性能、提高数据管理效率至关重要。本文将详细探讨SQL Server中表和索引的存储原理...

    sql server 索引的使用

    sql server 索引的使用 --创建索引create index(索引关键字) indexName(索引名) on userInfo(userName,userAge) create index indexName on userInfo(userName,userAge) --查看索引 sp_helpindex userInfo --创建...

    SQL Server 2000完结篇系列之七:SQL Server 2000索引优化详解

    本文将深入探讨SQL Server 2000中的索引优化,旨在帮助数据库管理员和开发人员理解如何有效地利用索引来提升系统性能。 一、索引的基本概念 索引是一种特殊的数据结构,它允许数据库快速定位到表中的特定行,类似于...

    V1.0-sqlServer索引使用总结.docx

    SQL Server 索引使用总结 本文档总结了 SQL ...索引是 SQL Server 中的一种重要优化工具,通过合理的索引使用,可以提高查询速度和效率。但是,索引的使用也需要注意一些重要的事项,例如索引的创建、删除和维护。

    数据库 创建索引 sql oracle

    * 用索引优化向导创建索引:索引优化向导是 SQL Server 2000 提供的新的创建索引工具,使用查询优化器分析工作负荷中的查询任务,向有大量工作负荷的数据库推荐最佳的索引混合方式,以加快数据库的查询。 索引的...

Global site tag (gtag.js) - Google Analytics