Oracle表记录字节长长度的两种计算方式sql
1、获取某个用户下某个表行记录的长度
这个长度是表字段定义的长度,获取方法:ide
- select owner,
- table_name,
- column_name,
- data_type,
- data_length,
- sum(case data_type
- when 'DATE' then
- 7
- when 'NUMBER' then
- 22
- else
- data_length
- end) length
- from all_tab_cols
- where table_name = upper('表名')
- and DATA_TYPE
- and owner=upper('用户名')
- group by rollup((owner, table_name, column_name, data_type, data_length))
2、根据表数据所占总字节数和表记录数来获取实际的每行记录的平均长度spa
获取表数据的全部字节数:string
- select segment_name,
- segment_type,
- nvl(sum(bytes), 0)
- from user_segments
- where segment_type = 'TABLE'
- and segment_name = '表名'
- group by segment_name, segment_type
- order by 3 desc;
获取表总记录数:it
- select count(*) from 表名
二者求商即得每行记录的平均字节数。 table