//查询所有表明
select name from sysobjects where xtype=‘u‘
select * from sys.tables
//查询数据库中所有的表名及行数
SELECT a.name, b.rows
FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id
WHERE (a.type = ‘u‘) AND (b.indid IN (0, 1))
ORDER BY a.name,b.rows DESC
//查询所有的标明及空间占用量行数
select
object_name(id) tablename,
8*reserved/1024 reserved,
rtrim(8*dpages)+‘kb‘ used,
8*(reserved-dpages)/1024 unused,
8*dpages/1024-rows/1024*minlen/1024 free,
rows
--,*
from sysindexes
where indid=1
order by tablename,reserved desc
如何快捷地查询Oracle中每个用户表的表名和行数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何快捷地查询Oracle中每个用户表的表名和行数?相关的知识,希望对你有一定的参考价值。
某个用户的表的表名从数据字典表 user_tables 可以查到,虽然 user_tables 数据字典中也有表的行数 NUM_ROWS 字段,但除非你对该用户进行统计信息收集(运行 dbms_stat.gather_schema_stats()系统包)否则该字段要么没有值,要么值是过期的数据,不准确. 正确的做法是:对数据库用户进行统计信息收集后,立刻执行:select table_name,num_rows from user_tables; 参考技术A dba权限下可以查询dba_tables,里面有个num_rows列
select
table_name,num_rows
from
dba_tables
where
...;
条件可以根据自己需要来加
不过提醒下,num_rows列并不是事实更新的,好像是1小时更新一次,查新之前最好先analyze下
analyze
table
xxx
compute
statistics; 参考技术B 用这个
select t.owner,t.table_name,t.num_rows from all_tables t
如果要指定某个用户的话加上
where owner='用户名'
我的数据库是oracle 11g和12c
sqlserver查询数据的所有表名和行数
以上是关于如何快捷地查询Oracle中每个用户表的表名和行数?的主要内容,如果未能解决你的问题,请参考以下文章