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个用户,那么每个用户登录系统看到的(使用的)功能是可以不相同的!
如果是oracle9i版本,可以考虑如下两步实现:(10g直接执行第二步就可以了)
统计一个用户下所有表的行数:
1.exec
dbms_stats.gather_schema_stats(owner=>'用户名')
2.select
sum(num_rows)
from
user_tables
统计全库所有表的行数:
1.exec
dbms_stats.gather_database_stats(estimate_percent=>'30')
2.select
sum(num_rows)
from
dba_tables
生产环境中需谨慎考虑收集新的统计信息后对应用产生的影响。
用一个过程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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)