Oracle 删除索引

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle 删除索引

删除索引是使用DROP INDEX语句完成的。一般情况下,删除索引是由索引所有者完成的,如果以其他用户身份删除索引,则要求该用户必须具有DROP ANY INDEX系统权限或在相应表上的INDEX对象权限。通常在如下情况下需要删除某个索引:

●该索引不再需要时,应该删除该索引,以释放其所占用的空间。

●如果移动了表中的数据,导致索引中包含过多的存储碎片,此时需要删除并重建索

引。

●通过一段时间的监视,发现很少有查询会使用到该索引。

索引被删除后,它所占用的所有盘区都将返回给包含它的表空间,并可以被表空间中其他对象使用。索引的删除方式与索引创建采用的方式有关,如果使用CREATE INDEX语句显式地创建该索引,则可以用DROP INDEX语句删除该索引。例如:

SQL> drop index emp_job_bmp;

索引已删除。

如果索引是定义约束时由Oracle自动建立,则必须禁用或删除该约束本身。另外,在删除一个表时,Oracle也会删除所有与该表相关的索引。

关于索引最后需要注意一点,虽然一个表可以拥用任意数目的索引,但是表中的索引数目越多,维护索引所需的开销也就越大。每当向表中插入、删除和更新一条记录时,Oracle 都必须对该表的所有索引进行更新。因此,用户还需要在表的查询速度和更新速度之间找到一个合适的平衡点。也就是说,应该根据表的实际情况,限制在表中创建的索引数量。

相关文档
最新文档