我想查找 Azure SQL MI 中每个数据库的总已用空间和剩余空间。
为此,在示例中,当我右键单击数据库并选择属性时,我会看到以下示例输出,其中总大小应约为 365 GB:
data_size log_size total_size
TEST_DB 355.69042968750 1.31347656250 357.00390625000
当我运行以下脚本获取数据库中所有表的大小时,表总和约为 500MB,我不知道剩余的 364.5 GB 去哪儿了。
另外,当我再次运行以下解决方案的脚本(https://dba.stackexchange.com/a/339009/289736)时,我看到的数据大小与大约 765MB 左右的数据大小相比要小得多:
我迷失了获取数据库大小的正确方法,因为不同的方法显示不同的大小。如果分配的大小和使用的大小之间存在巨大差距,那么差距从哪里产生?
请记住,数据库的数据和日志文件是一种预先分配磁盘空间的容器,如果您的数据文件为 365 GB,其中的数据为 730 MB,则意味着数据文件的 99% 以上是空的。
对于此特定查询,请使用我的ServerSpaceUsage存储过程。
要了解有关特定数据库(例如您的 365 GB 数据库)及其内部表的详细信息,请使用我的DatabaseSpaceUsage
将 DatabaseSpaceUsage 安装到有问题的数据库并在不带任何参数的情况下运行,或者安装到 master 数据库并运行
exec DatabaseSpaceUsage 'TEST_DB'