mssql 数据库大小统计方法
来源:互联网 发布:在线视频解析源码 编辑:程序博客网 时间:2024/05/19 03:26
一台服务器上所有数据库(也可能是部分数据库)的大小是我们经常需要了解的,它不仅能让我们知道目前数据库使用磁盘的比例,而且定期搜集这些信息,还能了解数据库一段时间的数据增量,更为常用的是在做数据迁移和升级时,方便规划新服务器磁盘容量。这里介绍三种统计数据库大小的方法:
方法一:使用 sp_spaceused
declare @dbname varchar(100) declare db_cur cursor forselect name from sys.sysdatabases where dbid>4 and name<>'distribution'open db_curfetch next from db_cur into @dbnamewhile @@FETCH_STATUS=0 begin print('use '+QUOTENAME(@dbname)) Print('go') Print('sp_spaceused') fetch next from db_cur into @dbname endclose db_curdeallocate db_cur
说明:我们做了初步的数据筛选,去掉了系统数据库和分发数据库,此方法会生成以下脚本
use [ReportServer]gosp_spaceuseduse [ReportServerTempDB]gosp_spaceuseduse [DataCache]gosp_spaceuseduse [MessageCenter]gosp_spaceuseduse [ABS]gosp_spaceuseduse [dbcenter]gosp_spaceuseduse [MDW]gosp_spaceused
我们直接运行,会得到相关数据库大小的统计信息:
我们需要的数据是打钩的信息(带database_name),将这些数据拷贝出来,放到Excel中就能很方便的做统计了
从图中可以看到,数据库大小为:363MB;此方法比较麻烦,不过对2000和2000以下版本的数据库是比较好的方法(没有DMV);
方法二:sys.database_files 和sp_MSforeachdb相结合
--统计某个实例中部分数据库大小:use mastergocreate table dbsize (dbname varchar(100),size int)--将数据库名和大小插入数据库表中exec sp_MSforeachdb "insert into master.dbo.dbsize select '?' as dbname,sum(size) as size from ?.sys.database_files"
说明:我们利用sp_MSforeachdb循环数据库,再在每个数据库中查询sys.database_files 视图来统计数据文件的大小,得到的结果放入到一个表中,
然后再使用这个表来做统计;
select * from master.dbo.dbsize--计算筛选数据库总大小select SUM(size)*8/1024 as dbsize from dbsize where dbname not in('master','tempdb','model','msdb','distribution')
如上图所示,统计出来的数据库大小也是:363MB。
方法三:sys.sysaltfiles与sys.databases结合统计
--db file sizeselect db.name,sf.name,sf.filename,sf.size from sys.sysaltfiles sf inner join sys.databases db on sf.dbid=db.database_id where db.database_id>4 and db.name <>'distribution'--dbsizeselect SUM(size)*8/1024 from sys.sysaltfiles sf inner join sys.databases db on sf.dbid=db.database_id where db.database_id>4 and db.name <>'distribution'
这种方法一次性搞定,统计出的数据库大小也是:363MB,比较方便。
- mssql 数据库大小统计方法
- MSSQL备份百万大小数据库方法
- 数据库大小的统计方法【鸡蛋】
- Atitit.mssql 数据库表记录数and 表体积大小统计
- MSSQL数据库备份恢复方法
- ASP连接MSSQL数据库方法
- MSSQL数据库日志清理方法
- 数据库大小,表大小及行数统计
- 查看MSSQL数据库每个表占用的空间大小
- 查看MSSQL数据库每个表占用的空间大小
- 查看MSSQL数据库每个表占用的空间大小
- 查看MSSQL数据库每个表占用的空间大小
- 查看MSSQL数据库每个表占用的空间大小
- 查看MSSQL 数据库 用户每个表 占用的空间大小
- Oracle,MySQL,MSSQL Server和Access数据库的统计函数
- T-SQL系列之性能统计信息/数据库IO(MSSQL)
- asp 接数据库方法(oracle&mssql)
- 备份、还原MSSQL数据库的方法
- xxx is not in the sudoers file. This incident will be reported的解决方法
- spring-ws
- android程序启动画面之Splash总结
- 使用mips交叉编译器编译boost
- jquery validate (3) : ajax请求服务器端验证
- mssql 数据库大小统计方法
- 《Java 2核心技术卷一》(读书笔记一)
- 《Java 程序设计》— 类与对象
- 《Java 程序设计》— 继承与多态
- 《Java 程序设计》— 异常处理
- 《Java 程序设计》— IO接口(I)
- csapp2e 家庭作业 2.71
- CT-压缩感知Compressive Sensing
- 《Java 程序设计》— IO接口(II)