怎么在oracle数据库中想统计一个用户下所有表的记录的总条数?
发布网友
发布时间:2022-04-30 07:57
我来回答
共3个回答
懂视网
时间:2022-04-30 12:19
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
create or replace function count_rows(table_name in varchar2,
owner in varchar2 default null)
return number
authid current_user
IS
num_rows number;
stmt varchar2(2000);
begin
if owner is null then
stmt := ‘select count(*) from "‘||table_name||‘"‘;
else
stmt := ‘select count(*) from "‘||owner||‘"."‘||table_name||‘"‘;
end if;
execute immediate stmt into num_rows;
return num_rows;
end;
然后通过计算函数进行统计
select table_name, count_rows(table_name) nrows from user_tables
本文出自 “技术成就梦想” 博客,请务必保留此出处http://pizibaidu.blog.51cto.com/1361909/1683502
Oracle查询数据库中所有表的记录数
标签:oracle 数据库 表 记录数 统计
热心网友
时间:2022-04-30 09:27
如果是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;
生产环境中需谨慎考虑收集新的统计信息后对应用产生的影响。
热心网友
时间:2022-04-30 10:45
analyze
table
table_name
COMPUTE
STATISTICS
对表分析后在使用
select
count(^)
from
table_name
如果你的table_name
有主键
ID
select
count(ID)
from
table_name
在统计的时候会用到主键索引