Oracle数据库索引和SQL Server的详述

发表于:2010-7-29 10:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:

  碎片非常多的索引可能会降低查询性能,导致应用程序响应缓慢。这个时候,我们需要做得就是重新组织和重新生成索 引。重新生成索引将删除该索引并创建一个新索引。此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重 新排序(根据需要分配新页)。这样可以减少获取所请求数据所需的页读取数,从而提高磁盘性能。

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

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

  带 DROP_EXISTING 子句的 CREATE INDEX。

  示例如下:

  A. 重新生成索引

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

1.USE AdventureWorks;
2.GO
3.ALTER INDEX PK_Employee_EmployeeID ON HumanResources.Employee
4.REBUILD;
5.GO

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

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

1.ALTER INDEX ALL ON Production.Product
2.REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON,
3.STATISTICS_NORECOMPUTE = ON);
4.GO

  2 Oracle 中的Oracle数据库索引

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

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

  1) 大表
  2) 主键(自动索引)
  3) 单键列(自动索引)
  4) 外键列(自动索引)
  5) 大表上WHERE子句常用的列
  6) ORDER BY 或者GROUP BY子句中使用的列。
  7) 至少返回表中20%行的查询
  8) 不包含null值的列。

33/3<123
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号