| Perfil de haiOracle & StarcraftBlogListas | Ayuda |
|
01 septiembre oracle compress table II上一篇文章提到压缩表发生update后会导致行迁移,但是在上篇文章里面没有做过多描述 首先创建测试表 create table test2(a varchar2(10),b varchar2(10),c varchar2(10)); begin 对压缩表添加一个列 SQL 10G>SQL 10G>SQL 10G> alter table testcom4 add d number; Table altered. 定位到一条记录,找出所在文件号,块号,文件号和rowid SQL 10G>select dbms_rowid.ROWID_RELATIVE_FNO(rowid) file#, FILE# BLOCK# ROW# SQL 10G>select rowid from testcom4 where rownum<2; ROWID 更新这条记录 SQL 10G>update testcom4 set d=1 where rowid='AAAT9AAAMAAAO+0AAA'; 1 row updated. SQL 10G>commit; Commit complete. SQL 10G>select dbms_rowid.ROWID_RELATIVE_FNO(rowid) file#, FILE# BLOCK# ROW# SQL 10G>alter system dump datafile 12 block 61364; System altered. perm_9ir2[3]={ 2 0 1 } SQL 10G>select dbms_utility.DATA_BLOCK_ADDRESS_FILE(to_number('300f085','xxxxxxxxxx')) FILE# BLOCK# dump新的block SQL 10G>alter system dump datafile 12 block 61573; System altered. block_row_dump: 可以看到新的block里面已经是非压缩的数据格式了,从这里可以看出对压缩表的更新确实是会导致 SQL 10G>alter table testcom4 drop column d; 报错了,提示“unsupported add/drop column operation on compressed tables” --------------------------- SQL 10G>alter table testcom4 set unused column d; Table altered. SQL 10G>alter table testcom4 drop unused columns; 希望下次下载一个patch可以解决这些问题。 Comentarios (7)Para agregar un comentario, inicia sesión con tu cuenta de Windows Live ID (si utilizas Hotmail, Messenger o Xbox LIVE, ya tienes una cuenta de Windows Live ID). Iniciar sesión ¿No tienes una cuenta de Windows Live ID? Regístrate
Vínculos de referenciaLa dirección URL del vínculo de referencia de esta entrada es: http://wzwanghai.spaces.live.com/blog/cns!56626E237AFBD116!339.trak Weblogs que hacen referencia a esta entrada
|
|
|