Atitit.mssql 数据库表记录数and 表体积大小统计

Atitit.mssql 数据库表记录数and 表体积大小统计

1. EXEC   sp_MSforeachtable   "EXECUTE   sp_spaceused   ‘?‘"

最后一种方法是利用隐藏未公开的系统存储过程sp_MSforeachtable

CREATE TABLE  #temp  (TableName  VARCHAR  (255),  RowCnt  INT)

EXEC  sp_MSforeachtable  ‘INSERT  INTO  #temp  SELECT  ‘‘?‘‘,  COUNT(*)  FROM  ?‘

SELECT  TableName,  RowCnt  FROM  #temp  ORDER  BY  TableName

DROP  TABLE  #temp

从mssql6.5开始,微软提供了两个不公开,非常有用的系统存储过程sp_MSforeachtable和sp_MSforeachdb,用于遍历某个数据库的每个表和遍历DBMS管理下的每个数据库。

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected]

转载请注明来源: http://blog.csdn.net/attilax

2. 查询首先通过sysobjects表

3. 参考

SQLSERVER中统计所有表的记录数 - minisunny的专栏 - 博客频道 - CSDN.NET.htm

时间: 2024-08-02 02:43:59

Atitit.mssql 数据库表记录数and 表体积大小统计的相关文章

MyBatis 用户表记录数查询

搭建MyBatis开发环境,实现用户表记录数查询 1.在MyEclipse中创建工程,导入MyBatis的jar包 2.创建MyBatis配置文件mybatis-config.xml配置数据库信息 mybatis-config.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0

三种流行的数据库查询表记录数【转】

现在三种比较流行的数据库查询表记录数分别如下: MySql: use information_schema; select table_name,table_rows from tables where TABLE_SCHEMA ='数据库实例' order by table_rows desc; SQL Server 2008: select distinct object_name(id) as 表名,rows as 表记录数 from sysindexes order by 使用行数 de

查看MySQL库中各个表记录数

说明,此方法只适合数据库库中表的记录数是较小的情况下,线上可以考虑采用,要是数据库的表特别的大的话,就不要采用此方法了,负责会导致mysql的服务器的负载特别的高,有可能导致服务器被挂掉的风险. for n in `mysql -uroot -p'12334' -e "use novel;show tables;"|sed '1d'`;do echo $n; mysql -uroot -p'12334' -e "use novel;select count(*) from $

navicat查看mysql数据表记录数不断变化

在使用navicat进行数据库管理的时候,在查看表对象的时候会发现,每次刷新,数据表的记录数不断变化,尤其是大表. 对于100万的数据经常会显示九十几万,当然通过count(*)出来的数据是正确的. 非常疑惑,查了一下资料,原来和存储引擎有关.官方说明: The number of rows. Some storage engines, such as MyISAM, store the exact count. For other storage engines, such as InnoDB

统计数据库中的表记录数与大小

SqlServer中: USE DBNAME; GO exec sp_MSForEachTable @precommand=N'create table ##( 表名 sysname, 记录数 int, 保留空间 Nvarchar(10), 使用空间 varchar(10), 索引使用空间 varchar(10), 未用空间 varchar(10))', @command1=N'insert ## exec sp_spaceused ''?''', @postcommand=N'select *

mysql/gbase数据库全库库表记录数统计

file:mysql_rows.sh 运行:sh mysql_rows.sh 库名 脚本内容: #!/bin/bash user=...pwd=... ip=... port=... tb_name=`mysql -u $user -p$pwd -h$ip -P$port -e "select table_name from information_schema.tables where table_schema=$1" |awk 'NR>1{print $1}'`>/da

sqlserver 连接查询的问题,a表无重复记录,与b表中的记录为1对N关系,如何在查得a表信息时统计b表记录数

第一种select t1.id, t1.name, t1.age, (select count(1) from b t2 where t1.id = t2.id) filecount from a t1第二种select t1.id, t1.name, t1.age, t2.filecount from a t1 left join (select id, count(1) filecount from b group by id) t2 on t1.id = t2.id

oracle 查看表行数所占空间大小

最新数据库空间有感觉捉急了,上次,删了些数据空了800+G,撑了一个多月,现在还有400+G,每天10G的增量,多少空间也感觉不够用啊. 不能加硬盘,就只有删数据了.. 删数据,人懒,直接找表行最多,占空间最大的表删 于是就有了下面一段SQL: select ut.table_name,ut.OWNER,ut.tablespace_name,num_rows,us.BYTES from dba_tables ut,(select segment_name,sum(bytes)/1024/1024

Mysql 触发器 A表记录到B表

1:查询出需要的列名 备用 #列名select COLUMN_NAME from information_schema.columns where TABLE_SCHEMA='yunpiaobox_db' and table_name='t_box_status' TABLE_SCHEMA: 数据库名称 table_name:表名 #列名字符串 按,分隔 select GROUP_CONCAT(COLUMN_NAME separator ',') '逗号分隔',GROUP_CONCAT(CONC