我正在开发一种解决方案,旨在在SQL Server数据库检测到已满时清除其一部分。为此,我不仅需要知道数据库的总大小,还需要知道可用大小(以MB为单位)。目前,我主要使用Oracle数据库,但是如果可能的话,解决方案应该是全局的。
做一些研究,我在SO以及Web的其他部分找到了一些带有一些解决方案的帖子,但它们通常太大(收集了我不感兴趣的大量数据),或者根本就没有。工作。我设法得到答案的少数几个是SELECT sum(bytes)/1024/1024 \"DB Size in MB\" FROM dba_free_space GROUP BY TABLESPACE_NAME
和类似的SELECT sum(bytes)/1024/1024 \"DB Size in MB\" FROM dba_free_space
。问题在于尚不清楚这些是否是特定于Oracle数据库的,并且它们给我的结果显然是错误的(例如,数据库几乎为空,并且显示一半已满,或者数据库获得了一些新数据并且可用大小得到了大)。
因此,重点是:我如何以编程方式知道SQL Server数据库当前有多少可用空间(以MB为单位)?特别欢迎使用SQL查询的解决方案。