WEB开发网
开发学院数据库Oracle SQL Server和Oracle数据库索引介绍 阅读

SQL Server和Oracle数据库索引介绍

 2008-09-08 12:51:07 来源:WEB开发网   
核心提示: 无论何时对基础数据执行插入、更新或删除操作,SQL Server 2005 数据库引擎都会自动维护索引,SQL Server和Oracle数据库索引介绍(4),随着时间的推移,这些修改可能会导致索引中的信息分散在数据库中(含有碎片),其中指定了三个选项,ALTERINDEXALLONPro

无论何时对基础数据执行插入、更新或删除操作,SQL Server 2005 数据库引擎都会自动维护索引。随着时间的推移,这些修改可能会导致索引中的信息分散在数据库中(含有碎片)。当索引包含的页中的逻辑排序(基于键值)与数据文件中的物理排序不匹配时,就存在碎片。碎片非常多的索引可能会降低查询性能,导致应用程序响应缓慢。这个时候,我们需要做得就是重新组织和重新生成索引。重新生成索引将删除该索引并创建一个新索引。此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重新排序(根据需要分配新页)。这样可以减少获取所请求数据所需的页读取数,从而提高磁盘性能。

可以使用下列方法重新生成聚集索引和非聚集索引:

带 REBUILD 子句的 ALTER INDEX。此语句将替换 DBCC DBREINDEX 语句。

带 DROP_EXISTING 子句的 CREATE INDEX。

示例如下:

A. 重新生成索引

以下示例将重新生成单个索引。  

   USEAdventureWorks;
  GO
  ALTERINDEXPK_Employee_EmployeeIDONHumanResources.Employee
  REBUILD;
  GO

B.重新生成表的所有索引并指定选项

下面的示例指定了 ALL 关键字。这将重新生成与表相关联的所有索引。其中指定了三个选项。 

   ALTERINDEXALLONProduction.Product
  REBUILDWITH(FILLFACTOR=80,SORT_IN_TEMPDB=ON,
  STATISTICS_NORECOMPUTE=ON);
  GO

2 Oracle 中的索引

索引是Oracle使用的加速表中数据检索的数据库对象。

下面的情况,可以考虑使用索引:

1) 大表

2) 主键(自动索引)

上一页  1 2 3 4 5 6 7  下一页

Tags:SQL Server Oracle

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