WEB开发网
开发学院数据库MSSQL Server SQL Server和Oracle中的索引 阅读

SQL Server和Oracle中的索引

 2008-09-03 09:59:42 来源:WEB开发网   
核心提示:1 SQL Server中的索引 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度,SQL Server和Oracle中的索引,索引包含由表或视图中的一列或多列生成的键,这些键存储在一个结构(B树)中,可以使数据库引擎 不必对数据进行排序,因为这些行已经排序,使SQL Server可以快速有效地查找与

1 SQL Server中的索引

索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。索引包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(B树)中,使SQL Server可以快速有效地查找与键值关联的行。

表或视图可以包含以下类型的索引:

聚集索引

聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。索引定义中包含聚集索引列。每个表只能有一个聚集索引,因为数据行本身只能按一个顺序排序。

只有当表包含聚集索引时,表中的数据行才按排序顺序存储。如果表具有聚集索引,则该表称为聚集表。如果表没有聚集索引,则其数据行存储在一个称为堆的无序结构中。

每个表几乎都对列定义聚集索引来实现下列功能:

1、可用于经常使用的查询。

2、提供高度唯一性。

在创建聚集索引之前,应先了解数据是如何被访问的。考虑对具有以下特点的查询使用聚集索引:

使用运算符(如BETWEEN、>、>=、< 和 <=)返回一系列值。

使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行物理相邻。例如,如果某个查询在一系列采购订单号间检索记录,PurchaseOrderNumber列的聚集索引可快速定位包含起始采购订单号的行,然后检索表中所有连续的行,直到检索到最后的采购订单号。

返回大型结果集。

使用join子句;一般情况下,使用该子句的是外键列。

使用ORDER BY或GROUP BY子句。

在ORDER BY或GROUP BY子句中指定的列的索引,可以使数据库引擎 不必对数据进行排序,因为这些行已经排序。这样可以提高查询性能。

聚集索引不适用于具有下列属性的列:

频繁更改的列

1 2 3 4 5 6  下一页

Tags:SQL Server Oracle

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接