在MS Sql Server中可以能过以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率:

1、查询各个磁盘分区的剩余空间:
Exec master.dbo.xp_fixeddrives

2、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等)
select * from [数据库名].[dbo].[sysfiles]
转换文件大小单位为MB:
select name, convert(float,size) * (8192.0/1024.0)/1024. from [数据库名].dbo.sysfiles

3、查询当前数据库的磁盘使用情况:
Exec sp_spaceused

4、查询数据库服务器各数据库日志文件的大小及利用率
DBCC SQLPERF(LOGSPACE)

5、查询数据库服务器名,实例名,版本号

SELECT SERVERPROPERTY('machinename'),@@SERVERNAME,SERVERPROPERTY ('edition'),@@version

--用SQL统计SQLServer表存储空间大小, 遍历库中每个表的记录数及空间占用情况。

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 "sp_spaceused '?'" SELECT t.name,t.[rows],t.reserved,t.data,t.index_size,t.unused
FROM ( SELECT *,CAST(replace(data,' KB','') as INT) as sort from #tmp) t
ORDER BY t.sort DESC
GO
DROP TABLE #tmp

  

参考文章: https://www.cnblogs.com/fygh/archive/2012/02/13/2348709.html?spm=a2c4e.10696291.0.0.fd7519a4FdNCoJ

方法一:使用 sp_spaceused

declare @dbname varchar(100) 
declare db_cur cursor for
select name from sys.sysdatabases where dbid>4 and name<>'distribution'
open db_cur
fetch next from db_cur into @dbname
while @@FETCH_STATUS=0
begin
print('use '+QUOTENAME(@dbname))
Print('go')
Print('sp_spaceused')
fetch next from db_cur into @dbname
end
close db_cur
deallocate db_cur

方法二:sys.database_files 和sp_MSforeachdb相结合

--统计某个实例中部分数据库大小:
use master
go
create 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')

方法三:sys.sysaltfiles与sys.databases结合统计

--db file size
select 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'

--dbsize
select 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'

经实践,方法二和方法三还是有点轻微区别的: 方法二是统计的是当前激活的数据库,方法三是统计所有的数据库(包括脱机,离线状态下的数据库)

人人都是DBA系列: https://www.cnblogs.com/gaochundong/p/everyone_is_a_dba_sp_info_collection.html

SQLServer统计采集数据库相关信息的更多相关文章

  1. MySQL查看数据库相关信息

    使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令   1:查看显示所有数据库 mysql> show databases ...

  2. [转]MySQL查看数据库相关信息

    原文链接:MySQL查看数据库相关信息 使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql& ...

  3. Python面试题-数据库相关

    1.mysql如何做分页 mysql数据库做分页用limit关键字,它后面跟两个参数startIndex和pageSize 2.mysql引擎有哪些 innodb和myisam两个引擎,两者区别是 i ...

  4. OCM_第十三天课程:Section6 —》数据库性能调优 _结果缓存 /多列数据信息采集统计/采集数据信息保持游标有效

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  5. 第十二章——SQLServer统计信息(1)——创建和更新统计信息

    原文:第十二章--SQLServer统计信息(1)--创建和更新统计信息 简介: 查询的统计信息: 目前为止,已经介绍了选择索引.维护索引.如果有合适的索引并实时更新统计信息,那么优化器会选择有用的索 ...

  6. 第十二章——SQLServer统计信息(3)——发现过期统计信息并处理

    原文:第十二章--SQLServer统计信息(3)--发现过期统计信息并处理 前言: 统计信息是关于谓词中的数据分布的主要信息源,如果不知道具体的数据分布,优化器不能获得预估的数据集,从而不能统计需要 ...

  7. 第十二章——SQLServer统计信息(2)——非索引键上统计信息的影响

    原文:第十二章--SQLServer统计信息(2)--非索引键上统计信息的影响 前言: 索引对性能方面总是扮演着一个重要的角色,实际上,查询优化器首先检查谓词上的统计信息,然后才决定用什么索引.一般情 ...

  8. c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询

    天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找到合适天气预报接口一切都是小意思,说干就干,立马跟学生沟通价格. ​ ​不过谈报价的过程中,差点没让我一口老血喷键盘上,话说我们程序猿的人 ...

  9. SqlServer 获取 当前地址下 所有数据库字段信息 / 快速 批量插入数据库(TVPs)

    SQL执行 --拼装 当前地址下 所有数据库字段信息 BEGIN DECLARE @dataBaseName NVARCHAR(MAX)--数据库名称 DECLARE @tableName NVARC ...

  10. MSSQL·查询数据库中所有索引的相关信息

    阅文时长 | 0.45分钟 字数统计 | 784字符 主要内容 | 1.引言&背景 2.声明与参考资料 『MSSQL·查询数据库中所有索引的相关信息』 编写人 | SCscHero 编写时间 ...

随机推荐

  1. 【动画进阶】巧用 CSS/SVG 实现复杂线条光效动画

    最近,群里在讨论一个很有意思的线条动画效果,效果大致如下: 简单而言,就是线条沿着不规则路径的行进动画,其中的线条动画可以理解为是特殊的光效. 本文,我们将一起探索,看看在不使用 JavaScript ...

  2. kapt构建报错

    报错信息: Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodExce ...

  3. MSP 通过 Splashtop SOS 远程支持非托管设备

    RMM 是 MSP 的绝佳工具.它们使 MSP 可以通过集中控制台来管理其所有客户计算机,通常使他们能够远程访问任何计算机以提供远程支持. 但是,这样做的一个很大限制是--并非所有客户设备都在 MSP ...

  4. istio sidecar 工作方式

    istio 是什么 Istio 是一个开放源代码的服务网格,它为基于微服务的应用程序提供了一种统一的方式来连接.保护.监控和管理服务.Istio 主要解决的是在微服务架构中的服务间通信的复杂性问题,它 ...

  5. 解析 ABP vNext 依赖注入实现【属性注入】的原理

    前言 这几天闲来没事看看ABP vNext的文档和源码,关于关于依赖注入(属性注入)这块儿产生了兴趣. 我们都知道.Volo.ABP 依赖注入容器使用了第三方组件Autofac实现的.有三种注入方式, ...

  6. centos7系统的七个运行级别和设置默认运行级别

    一.系统七个运行级别概述 0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的 1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录 2 ...

  7. .NET快速实现网页数据抓取

    前言 今天我们来讲讲如何使用.NET开源(MIT License)的轻量.灵活.高性能.跨平台的分布式网络爬虫框架DotnetSpider来快速实现网页数据抓取功能. 注意:为了自身安全请在国家法律允 ...

  8. Asp.NetCore3.1 asp.net 5.0 中多次读取 Request.Body Ajax Post过来的JSON数据等 已验证有效

    首先,以下方式是错误的(这个重复读取只能在using语句里面生效,因为用了ms对象赋值,当using结束后ms资源被释放,Request.Body就无法再读了) [HttpPost] public a ...

  9. nginx map模块使用和配置

    主机 IP 备注 master1 10.0.0.63 master2 10.0.0.64 1. NGINX MAP模块与NGINX GEO模块 在通常情况下,使用nginx基于 ip 限制访问请求频率 ...

  10. Swift 计算字符串展示的区域

    一.如果是普通文本,那么可以采用NSString的方法,代码如下: import UIKit import PlaygroundSupport class MyViewController : UIV ...