关于sql server连接的本地数据库大小的混淆

ut6juiuv  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(296)

我在网上搜索了一下数据库的大小,发现了如下查询:;

SELECT
    [name] AS [Filename],
    [size]/128.0 AS [Filesize],
    CAST(FILEPROPERTY([name],'SpaceUsed') AS int)/128.0 AS [UsedSpaceInMB],
    [size]/128.0 - CAST(FILEPROPERTY([name],'SpaceUsed') AS int)/128.0 AS [AvailableSpaceInMB],
    [physical_name] AS [Path]
FROM sys.database_files

以mb为单位返回数据库的已用空间和可用空间。另一个返回gb;

SELECT d.name, m.size * 8 / 1024 / 1024
FROM sys.master_files m 
JOIN sys.databases d ON d.database_id = m.database_id AND m.type = 0

但是请原谅我,因为我很困惑。我在visualstudio的服务器资源管理器中运行这个查询,因为我已经为一个程序附加了一个本地数据库,这个程序还在开发中。
我想做的是,既然有人说 SQL Server Express 有一个10 gb的最大值,我想看看分配的大小以及可用空间。运行这些查询时,我总共只得到大约9MB的内存,它将查询发送到 .mdf 文件(已用空间+可用空间)
我的电脑上也安装了SQLServerManagementStudio 2019,我可以用它来检查大小吗?
我的猜测是,它的大小不同于部署时,它将进一步扩大?或者我在错误的地方查询错误的东西。

nwo49xxi

nwo49xxi1#

如果您的查询是针对正确的数据库运行的,那么它们应该是准确的。数据库文件也有一个maxsize和一个filegrowth factor,所以您的数据库大小现在可能很低,因为您的数据库中只有很少的数据,但会随着添加更多的数据而增长。
您还可以使用gui:在ssms中,您可以右键单击数据库->报告->标准报告->磁盘使用情况。

此外,右键单击数据库->属性->从“选择页面”部分选择“文件”--在这里您可以检查initialsize、autogrowth/maxsize属性。

相关问题