sql-server - 查找数据库的可用空间(sql server)
问题描述
我正在尝试匹配以下两个查询的结果以查找数据库的可用空间
SELECT
sum(size/128.0) AS CurrentSizeMB,
sum(size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 )AS FreeSpaceMB
FROM sys.database_files
GO
sp_spaceused
任何人都可以建议我如何修改第一个查询,使其与计算的可用空间相匹配sp_spaceused
?
解决方案
尝试这个
BEGIN
DECLARE @CONST FLOAT -- To convert the pages to MB
SELECT @CONST = CONVERT(FLOAT,8)/CONVERT(FLOAT,1024)
SELECT
DB_NAME() AS [database],
f.name AS [file],
f.size * @CONST AS size,
FILEPROPERTY(f.name,'spaceused') * @CONST AS allocated,
(f.size - FILEPROPERTY(f.name,'spaceused')) * @CONST AS unallocated
FROM sys.master_files f
JOIN sys.databases d ON d.database_id = f.database_id
WHERE
d.name = DB_NAME()
END
推荐阅读
- excel - Excel VBA:在用户窗体中连接滚动条和文本框
- python - 使用 BeatifulSoup 解析 HTML 中的文本块 (IndustryAbout)
- google-apps-script - Populating html sidebar with js variable data
- string - 比较相邻链表节点中包含的字符串中的单个字符
- android - 从其他方法访问 savedInstance
- jquery - Chrome throwing an Aw Snap in debugger when trying to get form control value with JQuery
- python - 在 virtualenv 中设置 pygame
- r - R:四舍五入有什么问题?
- java - 方法同名但参数不同
- ansible - 无法使用 ansible 创建 gitlab 项目