如何在SQL Azure中找到最大数据库空间和已用数据库空间?

时间:2012-07-04 08:48:23

标签: sql-server database azure azure-sql-database

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

看起来像sp_mstablespace can be used to solve this problem,但此存储过程在SQL Azure中不可用。

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

2 个答案:

答案 0 :(得分:3)

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

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

虽然我认为您无法检索最大尺寸,但将数据库设置为最大尺寸并没有什么坏处,因为您只需为您使用的空间付费。话虽如此:如果你只有5GB以下的范围,那么最好选择网络版。如果你已经超过10 GB,那么将最大大小设置为150GB然后监控消耗的大小应该没有任何损害。

答案 1 :(得分:3)

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

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

Reference