在oracle10g中统计所有表的数据量可以使用如下语句:
select sum(NUM_ROWS) from dba_tables where owner like 'SCHEMA';
说明一下,以上语句必须用dba账户登录才可以使用,其中的SCHEMA参数就是当前用户名。
chema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。
一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。
最简单的理解:以你计算机的用户为例,如果你的计算机有3个用户,那么每个用户登录系统看到的(使用的)功能是可以不相同的!
analyze table table_name COMPUTE STATISTICS\x0d\对表分析后在使用\x0d\select count(^) from table_name \x0d\如果你的table_name 有主键 ID\x0d\select count(ID) from table_name 在统计的时候会用到主键索引
create or replace procedure row_count(t_name in varchar2,num_count out number)
as
excute immediate 'select count() into ' || num_count || ' from ' || t_name ;
end
;
用的时候 row_count('表名',变量名称)
就会把值返回到输出变量中
弄个字符串变量,设个游标,用括号里那一串;
然后遍历表名,每找到一个表名,就在字符串变量里拼上一段:=
'select
from
'||table_name||';',
然后用execute
immediate执行;
然后读下一个表名,直至遍历完毕。
大致就是这么个意思。
用一个过程
create or replace procedure procedure_name as
begin
insert into 统计表
select 字段名1,count(1) from 表 group by 字段名1
--统计表中的字段。(字段名1,数量)。如果有其它字段,请加入到下面select语句中。如:
/ insert into 统计表
select 字段名1,sysdate,'统计者的姓名', count(1) from 表 group by 字段名1/
end;
以上就是关于怎么统计oracle数据库表的数据量全部的内容,包括:怎么统计oracle数据库表的数据量、怎么在oracle数据库中想统计一个用户下所有表的记录的总条数、写一个统计数据库中其中一个表的数据个数 的存储过程 oracle等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)