SQL> select file#,BLOCK#,DIRTY,OBJD from v$bh where objd='78760';
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 165 Y 78760 5 131 Y 78760 5 173 Y 78760 5 160 Y 78760 5 168 Y 78760 5 163 Y 78760 5 129 N 78760 5 171 Y 78760 5 166 Y 78760 5 174 Y 78760 5 161 Y 78760
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 169 Y 78760 5 164 Y 78760 5 130 N 78760 5 172 Y 78760 5 167 Y 78760 5 175 Y 78760 5 162 Y 78760 5 128 Y 78760 5 170 Y 78760
20 rows selected.
SQL> select dbms_rowid.ROWID_RELATIVE_FNO(rowid),dbms_rowid.ROWID_BLOCK_NUMBER(rowid) from lp;
SQL> select file#,BLOCK#,DIRTY,OBJD from v$bh where objd='78760';
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 165 N 78760 5 131 N 78760 5 173 N 78760 5 160 N 78760 5 168 N 78760 5 163 N 78760 5 129 N 78760 5 171 N 78760 5 166 N 78760 5 174 N 78760 5 161 N 78760
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 169 N 78760 5 164 N 78760 5 130 N 78760 5 172 N 78760 5 167 N 78760 5 175 N 78760 5 162 N 78760 5 128 N 78760 5 170 N 78760
20 rows selected.
SQL> insert /*+ append_values(lp)*/ into lp values(2,'b','b','b','b');
1 row created.
SQL> commit;
Commit complete.
SQL> select dbms_rowid.ROWID_RELATIVE_FNO(rowid),dbms_rowid.ROWID_BLOCK_NUMBER(rowid) from lp;
SQL> select file#,BLOCK#,DIRTY,OBJD from v$bh where objd='78760';
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 165 N 78760 5 131 Y 78760 5 173 N 78760 5 160 N 78760 5 168 N 78760 5 163 N 78760 5 129 Y 78760 5 171 N 78760 5 192 Y 78760 5 166 N 78760 5 174 N 78760
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 161 N 78760 5 169 N 78760 5 164 N 78760 5 130 N 78760 5 172 N 78760 5 167 N 78760 5 175 N 78760 5 162 N 78760 5 128 Y 78760 5 170 N 78760
SQL> select file#,BLOCK#,DIRTY,OBJD from v$bh where objd='78760';
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 165 N 78760 5 131 Y 78760 5 173 N 78760 5 160 N 78760 5 168 N 78760 5 163 N 78760 5 129 Y 78760 5 171 N 78760 5 192 N 78760 5 166 N 78760 5 174 N 78760
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 161 N 78760 5 169 N 78760 5 164 N 78760 5 130 N 78760 5 172 N 78760 5 193 Y 78760 5 167 N 78760 5 175 N 78760 5 162 N 78760 5 128 N 78760 5 170 N 78760
SQL> select file#,BLOCK#,DIRTY,OBJD from v$bh where objd='78760';
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 165 N 78760 5 131 Y 78760 5 173 N 78760 5 194 Y 78760 5 160 N 78760 5 168 N 78760 5 163 N 78760 5 129 Y 78760 5 171 N 78760 5 192 N 78760 5 166 N 78760
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 174 N 78760 5 161 N 78760 5 169 N 78760 5 164 N 78760 5 130 N 78760 5 172 N 78760 5 193 N 78760 5 167 N 78760 5 175 N 78760 5 162 N 78760 5 128 N 78760
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 170 N 78760
依然如故,不知道大家有没有发现,每次我执行完插入,都会执行一条select dbms_rowid.ROWID_RELATIVE_FNO(rowid),dbms_rowid.ROWID_BLOCK_NUMBER(rowid) from lp; 这其实是全表扫描,本来块没在buffer里,一个FTS把块全给整进来了(小表buffer读,大表在11g中通常情况是直接路径读),知道原因了,再试一遍
SQL> insert /*+ append*/ into lp select * from lp where trim(des1)='b';
1 row created.
SQL> commit;
Commit complete.
SQL> selectfile#,BLOCK#,DIRTY,OBJD from v$bh where objd='78760';
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5165 N 78760 5131 Y 78760 5173 N 78760 5194 N 78760 5160 N 78760 5168 N 78760 5163 N 78760 5129 Y 78760 5171 N 78760 5192 N 78760 5166 N 78760
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5174 N 78760 5161 N 78760 5169 N 78760 5164 N 78760 5130 N 78760 5172 N 78760 5193 N 78760 5167 N 78760 5175 N 78760 5162 N 78760 5128 N 78760
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5170 N 78760
23rows selected.
SQL> select dbms_rowid.ROWID_RELATIVE_FNO(rowid),dbms_rowid.ROWID_BLOCK_NUMBER(rowid) from lp;
SQL> select file#,BLOCK#,DIRTY,OBJD from v$bh where objd='78760';
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 165 N 78760 5 131 Y 78760 5 173 N 78760 5 194 N 78760 5 160 N 78760 5 168 N 78760 5 163 N 78760 5 129 Y 78760 5 171 N 78760 5 192 N 78760 5 166 N 78760
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 174 N 78760 5 195 Y 78760 5 161 N 78760 5 169 N 78760 5 164 N 78760 5 130 N 78760 5 172 N 78760 5 193 N 78760 5 167 N 78760 5 175 N 78760 5 162 N 78760
FILE# BLOCK# D OBJD ---------- ---------- - ---------- 5 128 N 78760 5 170 N 78760