没索引oracle无唯一索引交换分区会丢失数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没索引oracle无唯一索引交换分区会丢失数据?相关的知识,希望对你有一定的参考价值。

参考技术A 重新创建索引:

使用以下选项可缩短创建索引所花费的时间:

PARALLEL NOLOGGING

PARALLEL(NOPARALLEL 是默认值):多个进程可以同时协同工作来创建索引。与单个服务器进程按顺序创建索引相比,通过在多个服务器进程之间分配创建索引所需的工作,Oracle 服务器可以更快速地创建索引。将随机对表取样并找到一组索引关键字,这些索引关键字按照指定的并行度将索引平均分为相同数目的片段。第一组查询进程将扫描表,提取关键字、行 ID 对并基于关键字将每个对发送到第二组查询进程中的一个进程中。第二组中的每个进程都对关键字进行排序并按常规方式构建索引。所有索引片段构建完成后,并行协调程序会将这些片段(已进行排序)级联以形成最终的索引。

SQL> CREATE INDEX rname_idx

ON hr.regions (region_name)

PARALLEL 4;

NOLOGGING:使用此关键字会加快索引的创建速度,因为创建进程创建的重做日志 条目极少。这种工作量大幅减小的重做生

成也适用于直接路径插入和 Direct Loader (SQL*Loader) 插入。这是永久性属性,因此将显示在数据字典中。可以随时使用

ALTER INDEX NOLOGGING/LOGGING 命令来加以更新。

注:若数据库在nologging状态时,所操作的数据应该备份,再将nologging改回来,以免重大失误难以恢复

丢失了索引表空间后进行恢复:

索引丢失时,更为快速、简单的方法是重新创建而不是尝试恢复索引。

索引是计算得到的对象,因为它们不提供任何原始数据,只是已存在数据的另一表示形式。因此,在大多数情况下,可以很容易地重新创建索引。

如果您的表空间仅包含索引,则可以简化在丢失了属于该表空间的数据文件后的恢复工作。

如果丢失了此类数据文件,则可以

执行以下步骤:

1.删除数据文件。

2.删除表空间。

3.重新创建索引表空间。

4.重新创建包含在表空间中的索引。

1.可以在不执行 RECOVER 任务的情况下恢复仅包含索引的表空间。

2.如果属于仅包含索引的表空间的数据文件丢失,则更为简单的方法可能是重新创建表空间和重新创建索引。

实验:索引表空间数据文件丢失

1.创建实验数据;

Oracle数据库主键约束与唯一索引有啥区别?

Oracle数据库主键约束与唯一索引有什么区别?具体区别在那里,可以举例说明.

创建索引时的唯一、主键与创建约束时候的唯一约束和主键约束有什么区别呢?

这里的可能容易产生误解,其实创建主键的结果是一样的,不管是在创建约束时创建还是创建索引时创建,都会创建一个主键约束和对应的一个唯一索引。

创建唯一约束与创建唯一索引有所不同:

创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。

创建唯一索引只会创建一个唯一索引,不会创建Constraint。

也就是说其实唯一约束是通过创建唯一索引来实现的。对于前端开发人员来说这两者有什么区别吗?好像没有。都是不能插入重复的值。在删除时这两者也有一定的区别,删除唯一约束时可以只删除约束而不删除对应的索引,所以对于的列还是必须唯一的,而删除了唯一索引的话就可以插入不唯一的值。
参考技术A 很简单,主键约束不能重复,不可为空(NULL)。
唯一性约束,不能重复,可为空(NULL)。
就是这样。本回答被提问者采纳
参考技术B 主键上创建的索引为“唯一索引”;
唯一索引所在的列不一定为“主键”;
column&index何来区别,不知你到底想知道什么?

以上是关于没索引oracle无唯一索引交换分区会丢失数据?的主要内容,如果未能解决你的问题,请参考以下文章

oracle表分区和索引分区

oracle里,truncate一个分区,能不能保留全局索引

Oracle-创建索引分区

数据库索引(Oracle和MySql)

oracle 有全局索引怎么删除分区

oracle 有全局索引怎么删除分区