此sql对监控系统很有帮助,知道哪些表压力大,每天的数量级大概多少等信息。
得到这些信息就可以做相应的策略来进行系统优化。
create table tmp(
name varchar(50),
rows int,
reserved varchar(50),
data varchar(50),
index_size varchar(50),
unused varchar(50)
);
insert into tmp (
name, rows, reserved, data, index_size, unused
) exec sp_MSforeachtable @command1="sp_spaceused '?'";
select * from tmp where name <> 'tmp' order by data desc ;
select sum(rows)/75 as 平均每天增加行数 from tmp '假定数据库表总数是75
select sum(rows)/2.5 as 平均每月增加行数 from tmp
select (sum(rows)/2.5)*1.5 as 平均每月频率 from tmp
select (sum(rows)/75)*1.5 as 平均每天频率 from tmp
select ((sum(rows)/2.5)*1.5)/102 as 平均每月每人频率 from tmp '假定数据库总用户数是102人
select ((sum(rows)/75)*1.5)/102 as 平均每个人的每天操作频率 from tmp
drop table tmp ;
得出结果如下: