ITPUX技术网

交流 . 资讯 . 分享
Make progress together!
Linux操作系统下Oracle11g R2 RAC 安装配置教程
Oracle数据库备份恢复高级培训视频(案例、实战、深入、全面)
Oracle数据库DBA高级工程师培训视频(集群容灾,核心深入,备份恢复)

Oracle大表在线建约束的最佳实践

内容发布:风哥| 发布时间:2016-10-3 16:11:11
Oracle大表在线建约束的最佳实践

在一个24*7的应用上,需要把一个访问量很大的1000万以上数据级别的表的普通索引(a,b)修改成唯一约束(a,b,c),你一般会选择怎么做,请说出具体的操作步骤与语句。
想要解答此题,需要掌握一些基础知识,建唯一约束会自动创建索引。

create table test as select * from dba_objects;
alter table test add constraint uni_test unique (owner,object_name,object_id) novalidate;
用10046跟踪可以发现建索引语句:
alter table test add constraint uni_test unique (owner,object_name,object_id) novalidate;
CREATE UNIQUE INDEX "TEST"."UNI_TEST" on "TEST"."TEST"("OWNER","OBJECT_NAME",
  "OBJECT_ID") NOPARALLEL

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          1          0           0
Execute      1      0.46       0.81        808       1086       1064           0
Fetch        0      0.00       0.00          0          0          0           0
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        2      0.46       0.81        808       1087       1064           0

novalidate :启用约束,仅对新加入的数据强制执行约束,而不管表中的现有数据。
如果直接建唯一约束,会创建索引,创建索引会堵塞表的修改或被堵塞,会造成性能问题。

最佳实践:
CREATE UNIQUE INDEX UNI_TEST on TEST(OWNER,OBJECT_NAME,OBJECT_ID) online nologging;
alter table test add constraint uni_test unique (owner,object_name,object_id) novalidate;




上一篇:ORACLE PL/SQL开发之游标(Cursor)使用
下一篇:Oracle-11g-rac-生产环境部署案例
专业提供Oracle数据库服务、主机、存储、备份、中间件等相关技术支持服务,QQ号:176140749
关注ITPUX技术网微信公众号itpux_com  ,了解本站最新技术资料的分享.

欢迎加QQ群,提供超多高质量Oracle/Unix/Linux技术文档与视频教程的下载。
Oracle/Linux/Unix群1:199479729    Oracle/Linux/Unix群5: 150201289
Oracle/Linux/Unix群2:158277749    Oracle/Linux/Unix群6: 244609803
Oracle/Linux/Unix群3:336282998    Oracle/Linux/Unix群7: 522261684
Oracle/Linux/Unix群4:189070296    Oracle/Linux/Unix群8: 522651731
备注:请勿重复加群,另请注明 from itpux

加群分享视频教程部分如下:
1.Oracle11gR2/Oracle12c RAC实施维护视频;   6.WebSphere四节点集群实施与应用布署;     
2.Oracle11gRAC/12c DataGuard容灾实施维护; 7.存储备份容灾技术与虚拟存储配置;
3.Oracle11g+Linux+Udev+ASM技术实施;        8.Linux平台多路径软件的配置与Oracle应用;
4.Win/Linux上Oracle11g/12c数据库实施;        9.WebLogic11g/12c多节点集群实施;
5.Oracle底层技术/数据块解析/BBED深入解析     10.Oracle数据库备份恢复高级培训/大量案例;  
回复

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表