1. 索引的基本概念
索引对性能的改进程度取决于数据的选择性以及数据在表的数据块中的分布方式。
一般来说,索引可以提高查询的性能。select语句、update、delete命令、where子句的性能可以借助索引获得提高。
但是增加索引会降低Insert语句的性能。索引列上的update操作会比没有索引慢很多,所以数据库必须管理对表的索引的改动。另外,大量行的delete操作也会由于表中存在索引而变慢。
2.不可视索引
通过使用不可视索引,可以通过使索引不可见,临时“关闭”索引来查看查询在没有它们时的性能,由于不可视索引依然被维护,如果需要的话,可以“打开”它们。
--使得索引不可视
create index [index_name] on table_name(column_name) invisible;
alter index [index_name] invisible;
--使得索引可视
alter index [index_name] visible;
3.组合索引
索引包含多个列,称之为“组合索引”或“复合索引”。
在没有引入跳跃式扫描功能之前,只有当索引中的前导列出现在where子句中,查询才能使用索引。Oracle 9i引入跳跃式扫描功能,即使没有使用前导列,优化器也可能会选择使用该索引,也可能选择索引快速全扫描或者全表扫描。
4.索引抑制
时间: 2024-10-11 21:43:32