统计向oracle每个表中插入一条记录时 , 占用的最大空间
2013-11-05 11:57
232 查看
统计向oracle每个表中插入一条记录时 , 占用的最大空间
1. 原始需要时 , 当我们向oracle 中创建一张表的时候 , 该表会有很多不同类型的字段(字段具有类型 , 长度) ,当我们向表中插入一条记录时 , 会占用多大的空间那 ?
2. 如果我们知道向表中插入一条记录时占用的空间大小的话 , 我们就可以估计出我们大概需要的空间 ,
需要多少硬盘空间 , 从而减少不必要的投资 .
-- 统计向每个表中插入一条记录时 , 占用的最大空间
select t2.table_name ,
(sum(nvl(t2.data_size , 0 )))||' (B)' as record_size_of_table1 ,
round((sum(nvl(t2.data_size , 0 )))/1024 , 4)||' (K)' as record_size_of_table2
from
(select
t1.TABLE_NAME , t1.COLUMN_NAME , t1.DATA_TYPE ,
case
when t1.DATA_TYPE = 'NUMBER' then floor((nvl(t1.DATA_PRECISION , 0 )+1)/2)+2
when t1.DATA_TYPE = 'DATE' then 7
else t1.DATA_LENGTH
end as data_size
from user_tab_columns t1 ) t2
group by t2.table_name order by t2.table_name
-- 统计向所有表插入一条记录时的 , 占用的最大空间
select
sum(t2.data_size)||' (B)' ,
round(sum(t2.data_size)/1024 , 4) ||' (K)' ,
round(sum(t2.data_size)/1024/1024 , 4) ||' (M)'
from
(select
t1.TABLE_NAME , t1.COLUMN_NAME , t1.DATA_TYPE ,
case
when t1.DATA_TYPE = 'NUMBER' then floor((nvl(t1.DATA_PRECISION , 0 )+1)/2)+2
when t1.DATA_TYPE = 'DATE' then 7
else t1.DATA_LENGTH
end as data_size
from user_tab_columns t1)
t2
相关文章推荐
- 怎么计算Oracle的表一条记录占用空间的大小
- 怎么计算Oracle的表一条记录占用空间的大小
- 怎么计算Oracle的表一条记录占用空间的大小
- 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
- 统计 MySQL 数据库中每个表数据与索引占用的空间大小
- 取得MS SQL 数据库中每个表的记录数及空间占用情况
- 查看SQL SERVER中指定数据库的每个表的数据量和每行记录所占用的空间
- 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
- oracle一条sql语句统计充值表中今天,昨天,前天三天充值记录
- 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
- 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
- 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
- ORACLE查询每个表占用空间大小
- 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
- 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
- 获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)
- 获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)
- oracle查询指定字段 重复记录大于一条的记录,并统计该记录出现的总次数
- oracle取一条记录中多个列的最大值和最小值
- Oracle:用一条 INSERT 语句批量插入多条记录