创建一个表时表中列的顺序在某些程度上对性能会有一定的影响。(表中的列有数据) 。
Oracle对行数据的存储结构ROW HEADER(行头)和COLUMN DATA(列数据)。ROW HEADER存储的信息是一个FLAG BYTE,一个LOCK BYTE 和COLUMN,COUNT.COLUMN DATA包含COLUMN LENGTH和COLUMN DATA。
关于这些我们可以DUMP个表做一下测试:
create test as select * from dba_objects;
select header_file,header_block from
dba_segments where owner='TEST' and segment_name='TEST';
HEADER_FILEHEADER_BLOCK
------------------------ ---------------------------
13 1179
alter system dump datafile 13 block 1180
得出来的文件在UDUMP中。
我们查看如下信息:
block_row_dump:
tab 0, row 0, @0x1f20
tl: 96 fb: --H-FL-- lb: 0x0 cc: 13--------row header信息.
col 0: [ 3] 53 59 53-------------------COLUMN DATA
fb: --H-FL-- 是FLAG BYTE.
fb Flag Byte:
K = Cluster Key (Flags may change meaning if this is set to show HASH cluster)
C = Cluster table member
H = Head piece of row
D = Deleted row
F = First data piece
L = Last data piece
P = First column continues from previous piece
N = Last column continues in next piece
伊图教程网[www.etoow.com]
http://www.etoow.com/html/2008-03/1206776605.html
lb: 0x0-----------LOCK BYTE,锁信息
创建一个表时表中列的顺序对性能的影响
'http://www.etoow.com/html/2008-03/1206776605.html