1

在 SQL Azure 中,每个数据库都有大小限制(可调整)。为了让我的服务不会突然停止,我希望能够以编程方式找到当前的最大大小和当前实际使用的空间(并在达到某个阈值时生成并发出警报)。

看起来sp_mstablespace可以用来解决这个问题,但是这个存储过程在 SQL Azure 中不可用。

如何在 SQL Azure 数据库中找到当前允许的最大大小和当前实际使用的空间?

4

2 回答 2

3

您可以通过动态管理视图计算已用空间(参考页面在这里):

SELECT SUM(reserved_page_count)*8.0/1024
FROM sys.dm_db_partition_stats; 

虽然我不认为您可以检索最大大小,但简单地将数据库设置为最大大小并没有什么坏处,因为您只需为使用的空间付费。话虽如此:如果您仅在 5GB 以下范围内,最好使用网络版。如果您已经超过 10 GB,则将最大大小设置为 150 GB 然后监控消耗的大小应该没有任何危害。

于 2012-07-04T13:17:20.677 回答
3

David 已经指出了如何查找数据库的当前大小,如果您想知道数据库的最大大小(以 MB 为单位),则需要在您感兴趣的数据库中运行以下查询:

SELECT CONVERT(BIGINT, DATABASEPROPERTYEX('DatabaseOfInterestName', 'MaxSizeInBytes')) / 1024

参考

于 2012-07-06T02:02:54.320 回答