SQLSERVER查询数据库文件大小

摘要:
SQLSERVER数据库的文件分为数据文件(行数据)和日志文件。可以在数据库属性中找到详细信息->文件通过在资源管理器中打开文件路径,可以直接看到这两个文件。然而,大多数时候,我们的数据库都安装在远程服务器上。如果它不是远程的,可以使用以下SQL语句:1.查询每个磁盘分区的剩余空间(即,磁盘C上还剩多少空间,磁盘D上还有多少空间…):Execmaster.dbo。xp_固定驱动器2.查询

SQLSERVER一个库的文件分为数据文件(行数据)和日志文件两个文件,详情可以在数据库的属性->文件中查看。

SQLSERVER查询数据库文件大小第1张

在资源管理器中打开文件所在路径可以直接看到这两个文件

SQLSERVER查询数据库文件大小第2张

但是,大多数时候我们的数据库安装在远程服务器上,在不远程的情况下,可以使用如下SQL语句:

1、查询各个磁盘分区的剩余空间(就是C盘还有多少空间,D盘还有多少...):

Exec master.dbo.xp_fixeddrives

SQLSERVER查询数据库文件大小第3张

2、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等):

select * from [数据库名].[dbo].[sysfiles]
--转换文件大小单位为MB:
select name, convert(float,size) * (8192.0/1024.0)/1024. from [数据库名].dbo.sysfiles

SQLSERVER查询数据库文件大小第4张

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

Exec sp_spaceused

SQLSERVER查询数据库文件大小第5张

database_size:数据库大小(就是数据文件和日志的大小),也就是上面size相加的值(字节换算成兆)

unallocated space:未分配空间。

4、查询数据库服务器各数据库日志文件的大小及利用率:

DBCC SQLPERF(LOGSPACE)

SQLSERVER查询数据库文件大小第6张

5、查看数据文件占用(所需权限较大):

DBCC showfilestats  

SQLSERVER查询数据库文件大小第7张

6、一个全面的SQL:

复制代码
SELECT a.name [文件名称]  
    ,cast(a.[size]*1.0/128 as decimal(12,1)) AS [文件设置大小(MB)]  
    ,CAST( fileproperty(s.name,'SpaceUsed')/(8*16.0) AS DECIMAL(12,1)) AS [文件所占空间(MB)]  
    ,CAST( (fileproperty(s.name,'SpaceUsed')/(8*16.0))/(s.size/(8*16.0))*100.0  AS DECIMAL(12,1)) AS [所占空间率%]  
    ,CASE WHEN A.growth =0 THEN '文件大小固定,不会增长' ELSE '文件将自动增长' end [增长模式]  
    ,CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN '增量为固定大小'  
        WHEN A.growth > 0 AND is_percent_growth = 1 THEN '增量将用整数百分比表示'  
        ELSE '文件大小固定,不会增长' END AS [增量模式]  
    ,CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN cast(cast(a.growth*1.0/128as decimal(12,0)) AS VARCHAR)+'MB'  
        WHEN A.growth > 0 AND is_percent_growth = 1 THEN cast(cast(a.growth AS decimal(12,0)) AS VARCHAR)+'%'  
        ELSE '文件大小固定,不会增长' end AS [增长值(%或MB)]  
    ,a.physical_name AS [文件所在目录]  
    ,a.type_desc AS [文件类型]  
FROM sys.database_files  a  
INNER JOIN sys.sysfiles AS s ON a.[file_id]=s.fileid  
LEFT JOIN sys.dm_db_file_space_usage b ON a.[file_id]=b.[file_id]  
复制代码

SQLSERVER查询数据库文件大小第10张

其中的文件设置大小就是该数据库的文件大小

免责声明:文章转载自《SQLSERVER查询数据库文件大小》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Excel表格导入Mysql数据库,一行存入多条数据的前后台完整实现思路(使用mybatis框架)Maven配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】sqlite3加密

【转】sqlite3加密 SQLite 3 开源版不带加密功能,对于一个保存在本地的数据库来说没有加密功能让人难以接受,只要用记事本打开数据库就可以看到数据库内保存的数据,对安全多多少少有一点影响。有一个办法是把内容加密后保存到数据库中,但遇到类似 like,或字段内容与字段内容比较这就不行了。治本的办法是让 SQLite 原生的支持加密。好在 SQL...

iOS 结构化数据访问

一、介绍   在存储大量数据时,除了最基本的打开文件,读取文件,存盘等这些没有明确管理机制的方式来存储数据外,iOS还提供了另外几种重要的数据存储方式。虽然这些方式最后还是将数据存储在文件中,但是iOS以一套系统性有制度的方式来管理这些数据,让数据不再是“散乱”的存储在文件中。如此一来,我们很容易处理大量的数据,并且同时兼顾性能。最常用的有三种方式:   ...

开发者使用JasperReport——通过数据源生成报表

前言 前两篇都是介绍了如何查询数据库,但是都是通过报表模版跟数据库进行交互的,也就是说我们的查询语句和参数的定义都写死在模版里面了,所以有时候会不太方便,所以今天就来跟大家介绍下通过Servlet与数据库进行交互,模板只负责显示。 正题 跟之前的一样,我们要生成报表需要以下几个步骤: 1.引入jar包,请看《静态文本报表》 。 2.新建报表模版: 由于...

MYSQLdump参数详解

mysqldump客户端可用来转储数据库或搜集数据库进行备份或将数据转移到另一个SQL服务器(不一定是一个MySQL服务器)。转储包含创建表和/或装载表的SQL语句。 如果你在服务器上进行备份,并且表均为MyISAM表,应考虑使用mysqlhotcopy,因为可以更快地进行备份和恢复。 有3种方式来调用mysqldump: shell> mysqld...

总结PHP缓存技术的多种方法

这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。 1、普遍缓存技术: 数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如...

数据持久层

持久是相对于瞬时来说的,其实就是可以把数据固化在硬盘或者磁带一类可以保存很长时间的设备上,不像放在内存中一样断电就消失了。企业应用中数据很重要(各种订单数据、客户数据、库存数据之类的),比应用程序本身更重要,所以需要把数据持久化。持久化可以通过很多方式,写文件和数据库都可以。只是现在企业一般都会选择把数据持久化到数据库中,因为可以很方便的查询统计分析,但数...