oracle删表分区同时维护索引,有关Oracle表分区进行(DML)维护后对索引的影响的分析...
对索引的几种情况分别进行总结:1、如果删除分区,则会导致该表下所有的索引状态处于不可用状态(除本地前缀索引外);2、如果重命名表,同上3、如果truncate分区数据,同上;4、重命名分区,不会对索引产生任何影响。解释:对于分区表,索引有以下几种方式:1、普通索引,与分区无关,就是平常的索引;2、全局分区索引,独立于分区的索引,按照独立的分区方式分区。按照网上介绍的和个人的实践,这个方式查询效率不高;3、本地前缀分区索引,即基于分区表的字段进行的分区,创建方式很简单,在普通索引建立的语句后面加个local即可, 效率相对于普通索引高一点;4、本地非前缀分区索引,即非基于分区表的分区字段,除非是特殊情况,这种方式效率较低,不推荐使用。当索引处于不可用状态时,数据将不能插入,会提示:ora-01502:state unusuable。且这种情下,只要表中有一个索引处于不可用状态,都会使表处于不可插入状态。可以修改参数来实现这种情况下的数据插入问题:alter session set skip_unusable_indexes=true;但是有种情况除外,当有存在唯一主键索引时,数据依然不能插入。而且主键索引也不能drop,因此想通过删除主键索引再修改参数来实现数据的可插入是不可实现的。因此这种情况下(索引状态处于不可用状态时)较好的办法是,先删除要进行本地索引分区的索引(此时尚未进行本地分区),创建本地分区索引后,再drop表分区,这样的好处是本来drop分区后需要重建n+1个索引,现在只要重建n个索引,这样的话就省去了重建这个索引的时间了。对于本地分区前缀索引,删除分区只会对所在分区的部分产生影响,对于其他的部分则仍然是正常状态的。另:修改参数只能对于当前session所在的用户有效,对于其他session,如果没有设置该条件,数据还是处于不可插入状态的。以上情况,需要在实际的应用中充分考虑到这些问题才能最大的减少所带来的数据丢失。重命名分区不会对索引状态产生影响。注:1、如何删除分区alter table [table_name] drop partition [partition_name];2、如何删除与创建本地分区索引删除:drop index [index_name];创建:create index [index_name] on [table_name]([index_column]) tablespace [tablespace_name] local [nologging/logging];注意:当在大表上建立索引时,使用NOLOGGING选项可以最小化重做记录.使用NOLOGGING选项有以下优点.节省重做日志空间降低索引建立实际提高索引并行建立的性能.但是nologging参数不建议在部署了dataguard的情况下使用,因为dataguard是基于归档日志来进行远程备份的。3、如何重建索引:alter index [index_name] rebuild [parallel {number}] [nologging/loggin];4、如何创建分区:--范围分区create table [table_name] partition by range([col_name])(partition [part_name] values less than [range_value] tablespace [tablespace_name],...)--列表分区--hash分区5、如何截断分区:alter table [table_name] truncate partition延伸:truncate一个表或一个分区,能使HWM重至为0,而delete则不能。6、如何重命名分区:alter table [table_name] rename partition [old_name] to [new_name];7、如何查询索引状态:select ind.table_name, ind.index_name, ind.statusfrom user_indexes indwhere ind.index_name = '[index_name]'and ind.table_name = '[table_name]'8、如何添加分区:alter table [table_name] add partition [partition_name] values less than([range_value]).
oracle删表分区同时维护索引,有关Oracle表分区进行(DML)维护后对索引的影响的分析...相关推荐
- oracle 全文索引 优化,通过案例学调优之--Oracle 全文索引
通过案例学调优之--Oracle 全文索引 全文检索(oracle text) Oracle Text使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力,Oracle Text 是 Or ...
- oracle中分区与索引区别,oracle表分区与索引分区
今天是2016年4月13号,清晨据说是50年来深圳最大的雨把我给吵醒了,上午腾讯新闻弹出新闻说这是谣言~!我信了~! 今天把tiptop的一个功能实现了~心情还不错.不瞎扯了,今天开始学习oracle ...
- java oracle 分区查询_深入学习Oracle分区表及分区索引
深入学习Oracle分区表及分区索引 关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: • Rang ...
- 2如何看表分区字段_技术分享|Oracle分区技术的实现总结
郝秉睿 青岛科技研发中心 相信对于分区技术,大家一定都有所了解.但是你知道Oracle一共有多少种分区技术么?它们的适用范围和规范是怎样?今天让我们一起来看一看Oracle分区技术的魅力. 在大型的数 ...
- oracle分区和锁的难,oracle使用三(锁和表分区)
行级锁只对用户正在访问的行进行锁定 授权用户: connect yyaccp/acccp; create user user2 identified by chenmp; grant create ...
- oracle全局索引改成本地索引,FAQ : 如何获得 Oracle 分区索引的类型 - 全局分区索引、本地分区索引...
Oracle 数据库针对分区的信息,通过多个数据字典视图来维护,所以在获取信息时,经常会困惑 DBA 们. 例如,如何获取 分区索引的类型,如何判断一个索引,是 全局分区索引,还是本地分区索引? 通过 ...
- oracle 表分区含义和使用场合,表分区的方式
文章目录 1.表分区和使用场景 1.1 作用 1.2 传统表分区的类型 1.2.1 范围分区 1.2.2 散列分区 1.2.3 列表分区 1.2.4 复合分区 1.3 11g新增分区 1.3.1 引用 ...
- oracle索引优劣,ORACLE的五种表的优缺点概述
一.普通表 (heap table):适合大部分设计场景,有优点也有缺点. 优点: 1.语法简单方便 2.适合大部分场景 缺点: 1.更新日志开销较大 2.Delete无法释放空间(HWM High ...
- oracle查看表和索引碎片,Oracle 表空间索引存储与碎片检查
Oracle 表空间索引存储与碎片检查 Oracle 表空间索引存储检查,Oracle 表空间索引碎片查看,包括查看系统表中的用户索引.索引的存储情况检查.索引的选择性.确定索引的实际碎片. 1.查看 ...
最新文章
- 模拟器上安装不能被卸载的apk
- Django运维后台的搭建之二:建立template和对应的ModelForm
- Activity后台运行一段时间回来crash问题的分析与解决
- java向注册表单传递数据php_PHP提交from表单的方法
- Eclipse里git提交冲突rejected – non-fast-forward
- 深航 App 劫持微信;董明珠:给员工分房加薪是应得的回报;ofo 复活 | 极客头条...
- Python Excel到JSON的转换
- 拓端tecdat|python使用MongoDB,Seaborn和Matplotlib文本分析和可视化API数据
- 电力安全工作规程发电厂和变电站电气部分_电气主接线知识精讲!
- 解决谷歌地图alert出现“此页面无法正确加载 Google 地图“
- 使用Netflix Archaius进行配置管理
- 转载:Delphi中制作外挂心得
- java-php-python-ssm新生报到管理计算机毕业设计
- CoolWeather地区无法加载
- 【HISI系列】之HISI芯片码率控制使用说明
- 蓝牙杂散超标_蓝牙产品型号核准认证检测内容是什么 需要SRRC认证杂散功率测试...
- 苹果手机无法加载抖音短视频的网络监测分析
- 动网8.3 整合 个人网站
- MPEG音频编码原理及编码器调试
- [固态硬盘协议 第3回] 你懂 PCIE 和 NVME是如何相依相恋?