六.索引及其用途
1.索引是以表列为基础的数据库对象,它保存着表中排序的索引列。
2.其主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间。
3.创建索引与维护索引都会浪费时间,对表中的数据进行增加,删除和修改操作时,索引就要进行维护,否则索引的作用就会下降;另外索引也会占用一定的物理空间,如果占用的物理空间过多,就会影响到整个数据库SQL Server系统的性能。
4.建立索引的原则:
(1)定义主键的数据列一定要建立索引。
(2)定义有外键的数据列一定要建立索引。
(3)对于经常查询的数据列最好建立索引。
A、对于需要在指定范围内的快速或频繁查询的数据列;
B、经常用在WHERE子句中的数据列。
(4)对于那些查询中很少涉及的列,重复值比较多的列不要建立索引。
(5)对于定义为text、image和bit的数据类型的列不要建立索引。
5.索引的分类:
(1)聚集索引:聚集索引会对表和视图进行物理排序。
(2)非聚集索引:不对表和视图进行物理排序,最多可建立250个非聚集索引,或者249个非聚集索引与1个聚集索引。
(3)唯一索引:唯一索引不允许两行具有相同的索引值。
6.创建索引的语法:
CREATE [UNIQUE][CLUSTERED | NONCLUSTERED]
INDEX index_name
ON {table_name | view_name}
[WITH [index_property [,....n]]
说明:
UNIQUE: 建立唯一索引。
CLUSTERED: 建立聚集索引。
NONCLUSTERED: 建立非聚集索引。
Index_property: 索引属性。
UNIQUE索引既可以采用聚集索引结构,也可以采用非聚集索引的结构,如果不指明采用的索引结构,则SQL Server系统默认为采用非聚集索引结构。
7.删除索引语法:
DROP INDEX table_name.index_name[,table_name.index_name]
说明:table_name: 索引所在的表名称。
index_name : 要删除的索引名称。
8.显示索引信息:
使用系统存储过程:sp_helpindex 查看指定表的索引信息。
执行代码如下:
Exec sp_helpindex book1;
9.重命名索引
语法:
Exce sp_rename table_name.old_index_name, new_index_name
10.显示查询计划的命令为:
SET SHOWPALN_ALL ON | OFF 或 SET SHOWPLAN_TEXT ON | OFF
说明:帮助用户分析有哪些索引被系统采用。
例子:
USE book
GO
SET SHOWPLAN_ALL ON
GO
SELECT * FROM book1 WHERE 编号='YBZT2406'
GO
SET SHOWPLAN_ALL OFF
GO
说明:在Set showplan命令与select 命令之间一定要有 go语句。
11.设置是否显示磁盘IO统计的命令为:
SET STATISTICS IO ON | OFF
12.索引的维护
更新索引的语法:
UPDATE STATISTICS table_name index_name
使用DBCC SHOWCONTIG 语句扫描表语法:
DBCC SHOWCONTIG (table_name, index_name)
使用DBCC INDEXDEFRAG语句进行碎片整理语法:
DBCC SHOWDEFRAG(database_name,table_name,index_name)
分享到:
相关推荐
- **掌握SQL Server系统的体系结构**:理解SQL Server 2005的核心组件及其工作原理。 - **熟悉数据库和数据库对象的特点**:掌握不同类型数据库及其对象的特性和用途。 - **认识管理工具**:了解SQL Server提供的...
- **触发器**:介绍触发器的概念及其用途,通过在特定事件发生时自动执行预定义操作来确保数据完整性。 #### 八、表约束与事务 - **表约束**:探讨如何使用表约束如PRIMARY KEY、FOREIGN KEY等来确保数据的完整性和...
首先,SQL Server数据库的简介强调了其作为数据库管理系统的主要功能,即管理数据库及其对象。它提供企业管理器和查询分析器两个工具,前者是图形化的用户界面,便于用户直观地操作数据库,后者则允许通过SQL语句...
### SQL Server 2008 Transact-SQL Recipes #### 概述 SQL Server 2008 Transact-SQL Recipes 是一本专为数据库管理员、开发者以及任何希望深入理解 SQL Server 2008 中 Transact-SQL 功能的专业人士所编写的书籍。...
11. **Integration Services**:理解SSIS(SQL Server Integration Services)的用途,学习数据导入导出、ETL(提取、转换、加载)过程的构建。 12. **Analysis Services**:了解OLAP(在线分析处理)和数据挖掘,...
### SQL Server 2005 编程基础 #### 一、概述 《Beginning SQL Server 2005 Programming》是一本专为SQL Server开发人员编写的入门级教材,旨在帮助初学者掌握SQL Server 2005的基础编程技能。本书由Robert Vieira...
SQL Server是一种广泛使用的关系型数据库管理系统,由微软公司开发,用于存储、管理和检索数据。在SQL Server面试中,面试官通常会考察候选人对SQL语言、数据库设计、性能优化、安全性及事务处理等多方面的能力。...
压缩包中的"SQL Server 2000系统表地图.chm"很可能是一个帮助文件,它详细地解释了每个系统表的字段含义和用途。通常,这种文档会包含如何查询这些表以获取特定信息的例子,以及如何使用这些信息来解决实际问题。...
本文将详细介绍Microsoft SQL Server中的保留关键字及其用途。 #### 一、SQL Server 保留关键字分类 SQL Server 的保留关键字可以分为以下几类: 1. **数据定义语言 (DDL) 关键字**:用于创建、修改和删除数据库...
- **DBCC命令介绍**:列举了常用的DBCC命令及其用途,如DBCC CHECKDB用于验证数据库一致性等。 - **维护操作**:指导如何使用DBCC命令进行表重组、统计更新等日常维护任务。 - **性能调节**:展示了如何通过DBCC命令...
本文将详细介绍SQL Server中几个关键的系统表,包括其用途和所包含的主要信息。 #### 二、具体系统表说明 **1. sysaltfiles** - **定义**: 包含与数据库中的文件相对应的行。该表存储在`master`数据库中。 - **...
根据提供的标题、描述以及标签,我们可以推断出这份文档主要关注的是SQL Server 2005的实现与维护。虽然给定的部分内容并未提供具体的知识点,但基于这些信息,我们可以构建一系列关于SQL Server 2005的核心知识点。...
**SqlServer默认数据库** 在SQL Server中,"默认数据库"指的是当用户或应用程序连接到服务器时,如果没有明确指定要使用的数据库,系统将自动连接到的数据库。这个默认数据库通常是`master`,它存储着SQL Server...
### SQL Server 2012 T-SQL Recipes #### 一、概述 《SQL Server 2012 T-SQL Recipes》是一本针对SQL Server 2012数据库管理系统的全面指南,它不仅适合初学者,也适用于有一定经验的专业人士。本书通过一系列实践...
3. **第三章:SQL Server 2008 Tools** - 讨论了SQL Server 2008中可用的各种工具,如SQL Server Management Studio (SSMS)、SQL Server Configuration Manager等,并介绍了它们的主要功能和用途。 4. **第四章:SQL...