1. 統計資料庫中每張表的大小

1.1 首先執行下面的命令

  1. exec sp_MSforeachtable @command1="sp_spaceused '?'";

1.2 檢測當前資料庫版本是否支援儲存過程“sp_MSforeachtable”,如果執行成功則可以使用下面的命令

  1. create table tmp(
  2. name varchar(50),
  3. rows int,
  4. reserved varchar(50),
  5. data varchar(50),
  6. index_size varchar(50),
  7. unused varchar(50)
  8. );
  9. insert into tmp (
  10. name, rows, reserved, data, index_size, unused
  11. ) exec sp_MSforeachtable @command1="sp_spaceused '?'";
  12. select * from tmp where name <> 'tmp' order by data desc ;
  13. drop table tmp ;
  • rows:行數
  • reserved:資料庫為該表分配的空間
  • data:資料實際使用的空間,reserved肯定>=data
  • index_size:索引使用的空間
  • unused:為資料庫中的物件保留但尚未使用的空間總量,大致等於reserved - data - index_size的值

2. 統計資料庫中每張表的行數

  1. select 表名=a.name, 記錄數=b.rows
  2. from sysobjects a, sysindexes b
  3. where a.name=b.name and a.type='u'
  4. ORDER BY b.rows desc