`
itspace
  • 浏览: 978555 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Oracle rebuild index的偶然发现

阅读更多
今天在做测试中一次偶然发现,详见以下测试过程
引用
SQL> create index t_idx1 on t(dataobj#) tablespace indexs;

Index created.

SQL> alter tablespace indexs offline;

Tablespace altered.

SQL> insert into t select * from t where rownum=1;
insert into t select * from t where rownum=1
            *
ERROR at line 1:
ORA-00376: file 5 cannot be read at this time
ORA-01110: data file 5: '/opt/ora11g/oradata/db11g/index01.dbf'



SQL> alter index t_idx1 rebuild;
alter index t_idx1 rebuild
*
ERROR at line 1:
ORA-00376: file 5 cannot be read at this time
ORA-01110: data file 5: '/opt/ora11g/oradata/db11g/index01.dbf'


SQL> alter index t_idx1 rebuild tablespace users;
alter index t_idx1 rebuild tablespace users
*
ERROR at line 1:
ORA-00376: file 5 cannot be read at this time
ORA-01110: data file 5: '/opt/ora11g/oradata/db11g/index01.dbf'

SQL> select INDEX_NAME,status from user_indexes;

INDEX_NAME                     STATUS
------------------------------ --------
T_IDX1                          VALID
SQL> drop index t_idx1;

Index dropped.

SQL> create index t_idx1 on t(dataobj#);

Index created.


由以上可以看出,Oracle rebuild索引的数据源是原索引,即参考原来的索引进行rebuild,而drop再create则不然。顺便提一句,
1、如果将表格用move方式整理碎片,索引将失效,所以需要将索引重建。

引用
SQL> alter table t move;

Table altered.

SQL> select INDEX_NAME,status,tablespace_name from user_indexes;

INDEX_NAME                     STATUS   TABLESPACE_NAME
------------------------------ -------- ------------------------------
T_IDX                          UNUSABLE USERS
T_IDX1                         UNUSABLE INDEXS


2、如果将索引表空间删除,索引也讲随之删除

引用
SQL> drop tablespace indexs including contents and datafiles;

Tablespace dropped.

SQL> select INDEX_NAME,status,tablespace_name from user_indexes;

INDEX_NAME                     STATUS   TABLESPACE_NAME
------------------------------ -------- ------------------------------
T_IDX                          UNUSABLE USERS

0
1
分享到:
评论

相关推荐

    SAP_very_useful_Oracle_SQL_cmd.zip_SAP_SAP rebuild index_Table

    本压缩包“SAP_very_useful_Oracle_SQL_cmd.zip_SAP_SAP rebuild index_Table”提供了与SAP系统相关的一系列Oracle数据库操作的实用工具,主要涉及表的管理和索引重建。 首先,解锁阴影实例(unlock shadow ...

    ORACLE重建索引总结

    使用`ALTER INDEX indexname REBUILD PARTITION partitionname TABLESPACE tablespacename`或`ALTER INDEX indexname REBUILD SUBPARTITION partitioname TABLESPACE tablespacename`命令,可以根据需要改变索引的...

    index rebuild

    根据提供的信息,我们可以总结出以下关于“索引重建(Index Rebuild)”的相关知识点: ### 索引重建概述 **索引重建**是数据库管理中的一个重要操作,它涉及删除现有的索引并重新创建它。这个过程可以帮助优化...

    如何一次性利用生成的脚本rebuild所有table的index

    本文将围绕“如何一次性利用生成的脚本rebuild所有table的index”这一主题展开,介绍相关知识点,并结合提供的`demobld.sql`文件进行说明。 首先,我们需要理解索引的作用。索引类似于书籍的目录,允许数据库系统...

    Oracle更改表空间(table、index、lob)

    ### Oracle更改表空间(table、index、lob) 在Oracle数据库管理中,更改表空间是一项重要的维护任务,尤其是在需要重新组织数据或优化存储时。本文将详细介绍如何通过SQL命令来更改表空间中的表(table)、索引...

    数据库优化以及操作说明

    @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', @FragmentationLevel1 = 5, @...

    Oracle Index Internals.pdf

    ### Oracle Index Internals #### 知识点概览 本文档深入探讨了Oracle数据库中的索引内部机制。主要内容包括各种类型的Oracle索引结构及其实施方式、索引的行为、维护策略以及成本基础优化器如何确定索引的使用...

    如何重建索引

    **ALTER INDEX REBUILD与ALTER INDEX REBUILD ONLINE的主要区别在于扫描方式的不同:** 1. **扫描方式不同:** - `REBUILD`命令使用`INDEX FAST FULL SCAN`(或`TABLE FULL SCAN`,具体取决于统计信息的成本)来...

    查询SQL Server Index上次Rebuild时间的方法

    在SQL Server中,索引重建(Rebuild)是一项重要的维护任务,它有助于优化查询性能,通过重新组织数据页和消除碎片。然而,系统并不直接记录每个索引的最后一次重建时间。当你需要确认某个索引何时进行了重建时,...

    oracle 052题库解析

    因此,为了不影响用户,应选择选项B,但在实际操作中,可能需要使用在线重构建索引(如ALTER INDEX REBUILD ONLINE),这样可以在不锁定索引的情况下进行重建。 4. Oracle数据库的Undo管理:Oracle数据库使用Undo表...

    SQL2005重新生成索引的的存储过程 sp_rebuild_index 原创

    标题中的"SQL2005重新生成索引的的存储过程 sp_rebuild_index 原创"指的是在SQL Server 2005中,作者创建了一个名为`sp_rebuild_index`的自定义存储过程,目的是方便高效地批量重新生成数据库中的索引。这通常用于...

    oracle索引的建立、修改、删除.doc

    语法:ALTER [UNIQUE] INDEX [user.]index [INITRANS n] [MAXTRANS n] REBUILD [STORAGE n] 例如:alter index pk_detno rebuild storage(initial 1m next 512k); 提示:DBA 经常用 REBUILD 来重建索引可以减少...

    ORACLE19c数据库性能优化说明.docx

    如果索引过大,可以通过`ALTER INDEX <INDEXNAME> REBUILD <TABLESPACENAME>`命令进行重构。其次,Oracle支持两种索引访问模式:索引唯一扫描和索引范围扫描,分别针对唯一键查询和范围查询。 基础表的选择对性能...

    SQL置疑REPAIR_REBUILD修复

    SQL Server 修复工具 REPAIR_REBUILD SQL Server 是一个复杂的关系数据库管理系统,它提供了强大的数据存储和管理功能。但是,当 SQL Server 遇到 I/O 错误、磁盘问题或其他错误时,数据库可能会损坏,导致数据丢失...

    Oracle为sdo_geometry创建空间索引

    ALTER INDEX SPATIAL_INDEX_TC2_DF_335 REBUILD ONLINE; ``` 这将重做名为 SPATIAL_INDEX_TC2_DF_335 的空间索引。 六、 注意事项 在创建空间索引时,需要注意以下几点: * 空间索引只能创建在 sdo_geometry 数据...

    Oracle高级详细资料

    通过使用DBMS_REDEFINITION、ALTER TABLE MOVE或ALTER INDEX REBUILD等方式,可以有效地整理和合并碎片,提高数据库的存储效率和查询速度。 再者,回滚段(ROLLBACK SEGMENTS)管理是Oracle事务处理的关键部分。...

    Oracle 11g详细操作

    - 修改索引:`ALTER INDEX index_name REBUILD;` - 删除索引:`DROP INDEX index_name;` #### 七、事务控制 - **提交事务**:`COMMIT;` - **回滚事务**:`ROLLBACK;` #### 八、PL/SQL - **基本语句块**:PL/SQL ...

    Oracle重构索引

    Oracle提供了多种方法来帮助我们重构索引,包括`DROP AND RECREATE`、`REBUILD`以及`REBUILD ONLINE`等方式。本文将详细介绍这些不同的索引重构方法,并通过实例展示它们的特点和适用场景。 #### 二、索引重构的...

    nexus index 索引手动更新

    "nexus index"指的是Nexus仓库中的索引,这个索引包含了仓库中所有组件的元数据,如版本信息、依赖关系等,方便开发者快速查找和下载所需的组件。 在默认情况下,Nexus会定期自动更新其索引,但这个过程可能比较...

    DELL_服务器硬盘掉线后的REBUILD修复操作全过程

    ### DELL服务器硬盘掉线后的REBUILD修复操作详解 在企业级服务器运维中,RAID技术作为数据冗余和性能提升的重要手段,被广泛应用。然而,在长时间运行或遇到突发状况时,服务器硬盘可能会出现故障,导致RAID阵列...

Global site tag (gtag.js) - Google Analytics