网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.配置Oracle Enterprise Manager过.
.ORACLE SQL性能优化 (上)(1).
.今天帮朋友解决了一个ora-00904.
.Oracle 10G Beta版本Bug及其解决.
.压缩数据以节省空间和提高速度.
.ora-00604报错.
.ORACLE SGA分配.
.使用UTL_FILE转储数据为逗号分隔.
.SCN不一致将会导致ORA-00600 266.
.Oracle 数据库备份与恢复专题.
.在oracle中限制返回结果集的大小.
.如何不使用ScriptAlias使一个目录.
.对Oracle学习者的一些建议:兴趣.
.Uedit32编辑器与SQLPlus结合使用.
.Oracle快速入门.
.在ORACLE里设置访问多个SQL Serv.
.访问Oracle数据库时如何限制绕过.
.Oracle 数据库向 MS SQL Server .
.Linux 磁盘与硬件管理.
.Oracle最强有力的辅助诊断工具SQ.

不产生UNDO的情况

发表日期:2008-2-9


以下操作不产生UNDO或产生很少的undo 1 Read-Only transaction 2Direct Path 数据导入 3对临时段操作,如排序等。 其他情况,因为要保证一致读,都要产生必要的undo 以下操作不产生UNDO 1 Read-Only transaction SQL> set transaction read only; Transaction set. SQL> select used_ublk,used_urec from v$transaction where ses_addr=(select saddr from v$session where sid=(select sid from v$mystat where rownum=1)); no rows selected SQL> insert  into test select * from t; insert  into test select * from t              * ERROR at line 1: ORA-01456: may not perform insert/delete/update operation inside a READ ONLY transaction SQL> select used_ublk,used_urec from v$transaction where ses_addr=(select saddr from v$session where sid=(select sid from v$mystat where rownum=1)); no rows selected 2Direct Path 数据导入 SQL> create table test as select * from t where 1=0; Table created. SQL> select used_ublk,used_urec from v$transaction where ses_addr=(select saddr from v$session where sid=(select sid from v$mystat where rownum=1)); no rows selected SQL> insert  /*+ append */ into test select * from t; 58842 rows created. SQL> select xidusn,xidslot,xidsqn,ubafil,ubablk,ubasqn,ubarec ,used_ublk,used_ur ec from v$transaction where ses_addr=(select saddr from v$session where sid=(sel ect sid from v$mystat where rownum=1));     XIDUSN    XIDSLOT     XIDSQN     UBAFIL     UBABLK     UBASQN     UBAREC ---------- ---------- ---------- ---------- ---------- ---------- ----------  USED_UBLK  USED_UREC ---------- ----------          2         33      10273          0          0          0          0          1          1 SQL> commit; Commit complete. SQL> insert  into test select * from t; 58842 rows created. SQL> select used_ublk,used_urec from v$transaction where ses_addr=(select saddr from v$session where sid=(select sid from v$mystat where rownum=1));  USED_UBLK  USED_UREC ---------- ----------         27       1482
    Append插入数据未提交时候,dump回滚段头 Start dump data blocks tsn: 1 file#: 2 minblk 25 maxblk 25 buffer tsn: 1 rdba: 0x00800019 (2/25) scn: 0x0000.00984d1c seq: 0x01 flg: 0x04 tail: 0x4d1c2601 frmt: 0x02 chkval: 0xaf28 type: 0x26=KTU SMU HEADER BLOCK   TRN TBL::   index  state cflags  wrap#    uel         scn            dba            parent-xid    nub     stmt_num   ------------------------------------------------------------------------------------------------    0x21   10    0x80  0x2821  0x0002  0x0000.00984d1c  0x00000000  0x0000.000.00000000  0x00000000   0x00000000 End dump data blocks tsn: 1 file#: 2 minblk 25 maxblk 25     没有为事务分配undo block.     再Dump表头 Start dump data blocks tsn: 9 file#: 9 minblk 395 maxblk 395 buffer tsn: 9 rdba: 0x0240018b (9/395) scn: 0x0000.00984d1c seq: 0x01 flg: 0x00 tail: 0x4d1c2301 frmt: 0x02 chkval: 0x0000 type: 0x23=PAGETABLE SEGMENT HEADER   Extent Control Header   -----------------------------------------------------------------   Extent Header:: spare1: 0      spare2: 0      #extents: 28     #blocks: 1664                   last map  0x00000000  #maps: 0      offset: 2716       Highwater::  0x0240018c  ext#: 0      blk#: 3      ext size: 8   #blocks in seg. hdr's freelists: 0   #blocks below: 0   mapblk  0x00000000  offset: 0                    Unlocked   --------------------------------------------------------   Low HighWater Mark :       Highwater::  0x0240018c  ext#: 0      blk#: 3      ext size: 8   #blocks in seg. hdr's freelists: 0   #blocks below: 0   mapblk  0x00000000  offset: 0   Level 1 BMB for High HWM block: 0x02400189   Level 1 BMB for Low HWM block: 0x02400189   --------------------------------------------------------   Segment Type: 1 nl2: 1      blksz: 8192   fbsz: 0   L2 Array start offset:  0x00001434
  First Level 3 BMB:  0x00000000   L2 Hint for inserts:  0x0240018a   Last Level 1 BMB:  0x02400c8a   Last Level II BMB:  0x0240018a   Last Level III BMB:  0x00000000      Map Header:: next  0x00000000  #extents: 28   obj#: 30508  flag: 0x20000000   Extent Map   -----------------------------------------------------------------    0x02400189  length: 8    0x024005d1  length: 8    0x024005d9  length: 8    0x024005e1  length: 8    0x024005e9  length: 8    0x024005f1  length: 8    0x024005f9  length: 8    0x02400601  length: 8    0x02400609  length: 8    0x02400611  length: 8    0x02400619  length: 8    0x02400621  length: 8    0x02400629  length: 8    0x02400631  length: 8    0x02400639  length: 8    0x02400641  length: 8    0x02400689  length: 128    0x02400709  length: 128    0x02400789  length: 128    0x02400809  length: 128    0x02400889  length: 128    0x02400909  length: 128    0x02400989  length: 128    0x02400a09  length: 128    0x02400a89  length: 128    0x02400b09  length: 128    0x02400c09  length: 128    0x02400c89  length: 128   Auxillary Map   --------------------------------------------------------    Extent 0     :  L1 dba:  0x02400189 Data dba:  0x0240018c    Extent 1     :  L1 dba:  0x02400189 Data dba:  0x024005d1    Extent 2     :  L1 dba:  0x024005d9 Data dba:  0x024005da    Extent 3     :  L1 dba:  0x024005d9 Data dba:  0x024005e1    Extent 4     :  L1 dba:  0x024005e9 Data dba:  0x024005ea    Extent 5     :  L1 dba:  0x024005e9 Data dba:  0x024005f1    Extent 6     :  L1 dba:  0x024005f9 Data dba:  0x024005fa    Extent 7     :  L1 dba:  0x024005f9 Data dba:  0x02400601    Extent 8     :  L1 dba:  0x02400609 Data dba:  0x0240060a    Extent 9     :  L1 dba:  0x02400609 Data dba:  0x02400611
   Extent 10    :  L1 dba:  0x02400619 Data dba:  0x0240061a    Extent 11    :  L1 dba:  0x02400619 Data dba:  0x02400621    Extent 12    :  L1 dba:  0x02400629 Data dba:  0x0240062a    Extent 13    :  L1 dba:  0x02400629 Data dba:  0x02400631    Extent 14    :  L1 dba:  0x02400639 Data dba:  0x0240063a    Extent 15    :  L1 dba:  0x02400639 Data dba:  0x02400641    Extent 16    :  L1 dba:  0x02400689 Data dba:  0x0240068b    Extent 17    :  L1 dba:  0x02400709 Data dba:  0x0240070b    Extent 18    :  L1 dba:  0x02400789 Data dba:  0x0240078b    Extent 19    :  L1 dba:  0x02400809 Data dba:  0x0240080b    Extent 20    :  L1 dba:  0x02400889 Data dba:  0x0240088b    Extent 21    :  L1 dba:  0x02400909 Data dba:  0x0240090b    Extent 22    :  L1 dba:  0x02400989 Data dba:  0x0240098b    Extent 23    :  L1 dba:  0x02400a09 Data dba:  0x02400a0b    Extent 24    :  L1 dba:  0x02400a89 Data dba:  0x02400a8b    Extent 25    :  L1 dba:  0x02400b09 Data dba:  0x02400b0b    Extent 26    :  L1 dba:  0x02400c09 Data dba:  0x02400c0b    Extent 27    :  L1 dba:  0x02400c89 Data dba:  0x02400c8b   --------------------------------------------------------    Second Level Bitmap block DBAs    --------------------------------------------------------    DBA 1:   0x0240018a     End dump data blocks tsn: 9 file#: 9 minblk 395 maxblk 395     发现High Water Mark 并没有提高。     此时,在其他session执行     SQL> insert into test select * from t where rownum<10;     该insert 被锁住     察看锁信息 SQL> select a.sid,b.sid,a.type,(select object_name from dba_objects where object _id=a.id1) object,a.lmode,b.request,a.block from v$lock a,v$Lock b where a.id1=b .id1 and a.id2=b.id2 and b.request>0 and a.block>0; Lock   Session       TYPE        OBJECT          LMODE    REQUEST      BLOCK
---------- ---------- -------------------- ---------- -------------------- ---------- ----------  11 block 16           TM           TEST                     6               3                       1     Direct Load Data的时候在表上加了绝对锁('Exclusive'),保证High Water Mark不被其他session修改;因High Water Mark不变,也就不会影响其他session一致读,也就不需要产生很多的undo。 SQL> truncate table test; Table truncated. SQL> insert /*+ append */ into test select  * from t where rownum<10; 9 rows created. SQL> select * from test; select * from test           * ERROR at line 1: ORA-12838: cannot read/modify an object after modifying it in parallel SQL> delete from test; delete from test          * ERROR at line 1: ORA-12838: cannot read/modify an object after modifying it in parallel     同时这也是为什么当前session也无法对表进行查询和修改的原因。     3对临时段操作,如排序等。
上一篇:使用event api诊断数据导入imp性能 人气:550
下一篇:类似ARC0: Failed to archive log# 3 seq# 230556的错误 人气:739
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐