首页
学习
活动
专区
圈层
工具
发布

Oracle删除索引规范

1.背景概述 近期应用升级上线过程中,存在删除业务表索引的变更操作,且因删除索引导致次日业务高峰时期,数据库响应缓慢的情况,经定位是缺失索引导致。...与用户沟通,虽然变更中删除索引的需求很少,但也存在此类需求。 本文从数据库层面,旨在尽可能避免类似问题发生,制定删除索引的变更规范。...2.索引删除规范 若确认需要做索引删除,可以使用Oracle提供的两个功能特性协助判断删除索引是否会有隐患。...2.2 将删除索引先修改为不可见 将计划要删除的索引设置为不可见(invisible),然后经历至少一个业务周期(具体业务确认业务周期为多久,注意要考虑到跑批场景)的观察,确认没有影响,则可以考虑彻底删除...一般原则是首先评估删除冗余索引,比如某张表同时有两个索引,索引A是c1列,索引B是c1,c2两列的复合索引,则一般可以选择删除索引A;但需要注意,如果索引B是c2和c1列的复合索引,就通常不可以删除索引

1.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Oracle 级联删除外键

    所谓的级联删除是指当主表中的一条记录被删除,那么子表中所关联的记录也相应的自动删除。本教程将教大家如何在Oracle中使用级联删除外键。...使用CREATE TABLE语句定义级联删除 以下是使用CREATE TABLE语句定义级联删除的语法: CREATE TABLE table_name ( column1 datatype null...由于级联删除,当supplier表中的记录被删除时,products表中相应的所有记录也将被删除,因为这些记录具有相同的supplier_id值。...根据supplier_id和supplier_name删除supplier表中的记录时,外键fk_foreign_comp上的级联删除会导致products表中的所有对应记录也会被级联删除。...使用ALTER TABLE语句定义级联删除 除了CREATE TABLE语句外,我们还可以用ALTER TABLE语句定义级联删除,具体语法如下: ALTER TABLE table_name ADD

    1.9K30

    oracle中如何删除重复数据

    一、对于部分字段重复数据的删除         先来谈谈如何查询重复的数据吧。        ...想要删除这些重复的数据,可以使用下面语句进行删除   delete from 表名 a where 字段1,字段2 in     (select 字段1,字段2,count(*) from 表名 group...不过这种删除执行的效率非常低,对于大数据量来说,可能会将数据库吊死。所以我建议先将查询到的重复的数据插入到一个临时表中,然后对进行删除,这样,执行删除的时候就不用再进行一次查询了。...下面就可以进行这样的删除操作了:   delete from 表名 a where 字段1,字段2 in (select 字段1,字段2 from 临时表);         这种先建临时表再进行删除的操作要比直接用一条语句进行删除要高效得多...在oracle中,有个隐藏了自动rowid,里面给每条记录一个唯一的rowid,我们如果想保留最新的一条记录, 我们就可以利用这个字段,保留重复数据中rowid最大的一条记录就可以了。

    3.8K30

    【Oracle笔记】索引的建立、修改、删除

    一、概念和作用   在oracle索引是一种供服务器在表中快速查找一个行的数据库结构。合理使用索引能够大大提高数据库的运行效率。   在数据库中建立索引主要有以下作用。   ...TABLESPACE tablespace] [NO SORT] Advanced 例如: create index big_index on big_data_tbl(id); 其中: schema:ORACLE...五、删除索引   当不需要时可以将索引删除以释放出硬盘空间。命令如下: DROP INDEX [schema.]indexname 注:当表结构被删除时,有其相关的所有索引也随之被删除。...六、索引建立原则总结 如果有两个或者以上的索引,其中有一个唯一性索引,而其他是非唯一,这种情况下oracle将使用唯一性索引而完全忽略非唯一性索引。...限制表中索引的数量(创建索引耗费时间,并且随数据量的增大而增大;索引会占用物理空间;当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度)。

    3K41

    数据恢复:如何恢复Linux中意外删除的Oracle和MySQL数据库

    张乐奕 云和恩墨副总经理,Oracle ACE总监,ACOUG 联合创始人 没有删除过数据库的DBA职业生涯是不完整的,删除过数据库还能幸存的DBA一定是订阅了“Oracle”公众号。...让我们完整的再复习一下这篇文章的步骤,一定要记住这种方法: 今天有客户的数据库意外被删除了整个目录中的数据文件,操作系统级别的删除,然而幸运的是这个数据库没有崩溃,仍然处于 open 状态的时候,客户就发现了问题...在 Linux 下大致重新演示一下恢复的过程,恢复的步骤与数据库版本没有太大关系,与操作系统的不同会有所不同。 1. 在数据库 open 的时候,直接删除 users 表空间中的数据文件。 2....注意其中“/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf (deleted)”字样,表示该文件已经被删除,如果是 Solaris...恢复的原理是,在 Linux 操作系统中,如果文件从操作系统级别被rm掉,之前打开该文件的进程仍然持有相应的文件句柄,所指向的文件仍然可以读写,并且该文件的文件描述符可以从 /proc 目录中获得。

    5.5K60
    领券