删除索引-the design and analysis of algorithms

时间:2024-06-29 04:38:50
【文件属性】:

文件名称:删除索引-the design and analysis of algorithms

文件大小:4.17MB

文件格式:PDF

更新时间:2024-06-29 04:38:50

达梦,DM7

11.3 重建索引 当一个表经过大量的增删改操作后,表的数据在物理文件中可能存在大量碎片,从而影 响访问速度。另外,当删除表的大量数据后,若不再对表执行插入操作,索引所处的段可能 占用了大量并不使用的簇,从而浪费了存储空间。 可以使用重建索引来对索引的数据进行重组,使数据更加紧凑,并释放不需要的空间, 从而提高访问效率和空间效率。DM7提供的重建索引的系统函数为: SP_REBUILD_INDEX(SCHEMA_NAME varchar(256), INDEX_ID int); SCHEAM_NAME为索引所在的模式名,INDEX_ID为索引 ID。 使用说明: 1. 水平分区子表,临时表和系统表上建的索引不支持重建 2. 虚索引和聚集索引不支持重建 例如,需要重建索引 emp_name,假设其索引 ID为 1547892,那么使用以下语句重建 索引: SP_REBUILD_INDEX('SYSDBA ', 1547892); 11.4 删除索引 用户可能出于以下某项原因需要删除一个索引: 1. 不再需要该索引; 2. 该索引没有为针对其相关的表所发布的查询提供所期望的性能改善。例如,表可能 很小,或者尽管表中有许多行但只有很少的索引项; 3. 应用没有用该索引来查询数据。 要想删除索引,则该索引必须包含在用户的模式中或用户必须具有 DROP ANY INDEX 数据库权限。索引删除之后,该索引的段的所有簇都返回给包含它的表空间,并可用于表空 间中的其他对象。 如何删除索引,取决于是否是用 CREATE INDEX 语句明确地创建该索引的,是则可以 用 DROP INDEX 语句删除该索引。如下面的语句删除 emp_ename索引。 DROP INDEX emp_ename; 然而,不能直接删除与已启用的 UNIQUE KEY键或 PRIMARY KEY 键约束相关的索引。 要删除一个与约束相关的索引,必须停用或删除该约束本身。如下面的语句删除主键约束 pk_emp_name,同时删除其对应的索引。 ALTER TABLE emp DROP CONSTRAINT pk_emp_name; 除了删除普通索引,DM7 还提供删除聚集索引,只要其聚集索引是通过 CREATE CLUSTER INDEX明确建立的。例如,下面的语句删除 emp表的聚集索引 clu_emp_name。


网友评论