li
  当前位置:主页 > 性能优化 > 文章内容
li
Oracle11新特性——在线操作功能增强(七)
来源: http://yangtingkun.itpub.net/  作者: yangtingkun    时间:2008-01-26   阅读:2  
本文章共5217字,分4页,当前第1页,快速翻页:
 

打算写一系列的文章介绍11g的新特性和变化。

11g中在线处理功能得到了很大增强,其中包括在线修改表结构,在线创建或重建索引,建立不可见索引,表增加非空字段,在线DDL以及对象依赖性细化等。

这一篇介绍Oracle11g在线重建索引功能增强。

Oracle11新特性——在线操作功能增强(一):http://yangtingkun.itpub.net/post/468/400430

Oracle11新特性——在线操作功能增强(二):http://yangtingkun.itpub.net/post/468/401293

Oracle11新特性——在线操作功能增强(三):http://yangtingkun.itpub.net/post/468/401641

Oracle11新特性——在线操作功能增强(四):http://yangtingkun.itpub.net/post/468/402220

Oracle11新特性——在线操作功能增强(五):http://yangtingkun.itpub.net/post/468/402802

Oracle11新特性——在线操作功能增强(六):http://yangtingkun.itpub.net/post/468/402977


11加强了ONLINE REBUILD索引功能,减少了ONLINE REBUILD索引过程中对DML操作的阻塞。

下面看看10g中和11g在线重建索引的差别,首先登陆10g:

SQL> CREATE TABLE T AS SELECT ROWNUM ID, A.* FROM DBA_OBJECTS A;

表已创建。

SQL> CREATE INDEX IND_T_NAME ON T(OBJECT_NAME);

索引已创建。

SQL> DELETE T WHERE ID = 1;

已删除 1 行。

会话1中建立表和索引后,删除一条记录,且不提交。

SQL> SET SQLP 'SQL2> '
SQL2> ALTER INDEX IND_T_NAME REBUILD;
ALTER INDEX IND_T_NAME REBUILD
*
1 行出现错误:
ORA-00054:
资源正忙, 但指定以 NOWAIT 方式获取资源


SQL2> ALTER INDEX IND_T_NAME REBUILD ONLINE;

在会话2上尝试重建索引。

由于无法马上获取锁,直接REBUILD INDEX会报错,而REBUILD INDEX ONLINE则会处于等待状态,直到获取表的锁。

IXDBA.NET社区论坛

这时在会话1上查询锁信息和会话2的等待情况:

SQL> SELECT SID FROM V$MYSTAT WHERE ROWNUM = 1;

SID
----------
148

SQL> SELECT SID FROM V$SESSION WHERE USERNAME = 'YANGTK';

SID
----------
144
148

SQL> SELECT SID, TYPE, ID1, CTIME, BLOCK FROM V$LOCK WHERE SID IN (144, 148);

SID TY ID1 CTIME BLOCK
---------- -- ---------- ---------- ----------
144 DL 52896 360 0
144 DL 52896 360 0
148 TM 52896 417 1
144 TM 52896 360 0
144 TM 52899 359 0
148 TX 65575 417 0

已选择6行。

SQL> COL EVENT FORMAT A40
SQL> COL P1TEXT FORMAT A20
SQL> SELECT EVENT, P1TEXT, P1, SECONDS_IN_WAIT FROM V$SESSION_WAIT WHERE SID = 144;

EVENT P1TEXT P1 SECONDS_IN_WAIT
---------------------------------------- -------------------- ---------- ---------------
enq: TM - contention name|mode 1414332420 749

会话2处于等待锁的状态中,下面提交会话1的修改,随后马上执行一个DELETE操作。为了避免COMMITDELETE操作间隔时间太大,在文本编辑器中,将两个命令编辑好,拷贝到剪贴板,然后一起拷贝到SQLPLUS中:

SQL> COMMIT;

提交完成。

SQL> DELETE T WHERE ID = 2;

已删除 1 行。

SQL> SELECT SID, TYPE, ID1, CTIME, BLOCK FROM V$LOCK WHERE SID IN (144, 148);

SID TY ID1 CTIME BLOCK
---------- -- ---------- ---------- ----------
144 DL 52896 828 0
144 DL 52896 828 0
148 TM 52896 26 1



阅读更多内容1 · 2 · 3 · 4 · 下一页>>


  上一篇: Oracle11新特性——在线操作功能...   下一篇: Oracle11新特性——在线操作功能...
li
 §相关评论  
 热点文章

·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 编辑推荐
·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 相关篇章
·Oracle11新特性——在线操作功能...
·Oracle11新特性——在线操作功能...
·Oracle11新特性——在线操作功能...
·Oracle11新特性——在线操作功能...
·Oracle11新特性——PLSQL新特性(...
·Oracle11新特性——PLSQL新特性(...
·Oracle11新特性——PLSQL新特性(...
·Oracle11新特性——PLSQL新特性(...
·Oracle11新特性——PLSQL新特性(...
·Oracle11新特性——PLSQL新特性(...
·Oracle11新特性——在线操作功能...
·Oracle11DATA GUARD实时应用加实...
·Oracle11新特性——在线操作功能...
·Oracle11新特性——分区功能增强...
·Oracle11新特性——分区功能增强...
·Oracle11新特性——分区功能增强...
·Oracle11新特性——分区功能增强...
·Oracle11新特性——分区功能增强...
·Oracle11新特性——虚拟列
·Oracle11g INTERVAL分区新增分区...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接