怎么在oracle数据库中想统计一个用户下所有表的记录的总条数?

怎么在oracle数据库中想统计一个用户下所有表的记录的总条数?,第1张

如果是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

生产环境中需谨慎考虑收集新的统计信息后对应用产生的影响。

select * from dba_users查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system

select * from all_users 查看你能管理的所有用户!

select * from user_users查看当前用户信息 !

-- 查询你 当前用户下,有哪些表

SELECT * FROM user_tables

-- 查询你 当前用户下, 可以访问哪些表 [也就是访问自己 和 其他用户的]

SELECT * FROM all_tables

-- 查询当前数据库所有的表, 需要你有 DBA 的权限

SELECT * FROM dba_tables

查看方法:

1、查看所有表空间及表空间大小

select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name

2、查看所有表空间对应的数据文件:

select tablespace_name,file_name from dba_data_files

3、修改数据文件大小:

alter database datafile 'H:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE\USERS01.DBF' RESIZE 10240M

扩展资料

每张表都是作为“段”来存储的,可以通过user_segments视图查看其相应信息。

段(segments)的定义:如果创建一个堆组织表,则该表就是一个段。

sql:SELECT segment_name AS TABLENAME,BYTES FROM user_segments WHERE segment_name='表名'。

解释:

segment_name 就是要查询的表名(大写),BYTES 为表存储所占用的字节数。本sql的意思就是查询出表名和表所占的存储空间大小。

参考资料

csdn:怎么查看oracle数据库大小


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6775598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存