我的容量规划程序非常困难,我通常用于SQL Server 2005及更高版本的DMV无法识别。
我已经查找了腐败但数据库很清楚。
我通常运行的代码如下:
USE [MYDB];
SELECT
DatabaseName = DB_NAME()
,a.FILEID
,[FILE_SIZE_MB] = CONVERT(INT, ROUND(a.size / 128.000, 2))
,[SPACE_USED_MB] = CONVERT(INT, ROUND(FILEPROPERTY(a.NAME, 'SpaceUsed') / 128.000, 2))
,[FREE_SPACE_MB] = CONVERT(INT, ROUND((a.size - FILEPROPERTY(a.NAME, 'SpaceUsed')) / 128.000, 2))
,a.NAME AS [LOGICALNAME]
,SUBSTRING(a.FILENAME,1,1) AS [DRIVE]
,a.FILENAME
,[FILE_TYPE] = b.type_desc
FROM
DBO.SYSFILES a
INNER JOIN
SYS.DATABASE_FILES b ON a.fileid = b.file_id
有没有人有这样的问题?
请分享任何知识
感谢和问候 马塞洛
答案 0 :(得分:1)
尝试使用sys.master_files
表。第一个查询将为您提供除Space Used和FreeSpace之外的所有内容。第二个会给你一切。
SELECT DB_NAME([database_id]) AS [Database Name]
,[file_id]
,name AS [Logical Name]
,physical_name
,type_desc
,state_desc
,CONVERT(BIGINT, size / 128.0) AS [Total Size in MB]
,CONVERT(DECIMAL(18, 2), size / 131072.0) AS [Total Size in GB]
,CASE WHEN max_size = -1 THEN -1
ELSE CONVERT(DECIMAL(18, 2), max_size / 131072.0)
END AS [Max Size in GB]
FROM sys.master_files WITH ( NOLOCK )
WHERE [database_id] >4
ORDER BY DB_NAME([database_id])
OPTION ( RECOMPILE );
EXEC sys.sp_MSforeachdb
'
use [?]
SELECT DB_NAME([database_id]) AS [Database Name]
,[file_id]
,name AS [Logical Name]
,physical_name
,type_desc
,state_desc
,CONVERT(BIGINT, size / 128.0) AS [Total Size in MB]
,CONVERT(BIGINT, FILEPROPERTY(NAME, ''SpaceUsed'') / 128.0) AS [Space Used in MB]
,CONVERT(BIGINT, size / 128.0) - CONVERT(BIGINT, FILEPROPERTY(NAME, ''SpaceUsed'') / 128.0) AS [Free Space in MB]
,CONVERT(DECIMAL(18, 2), size / 131072.0) AS [Total Size in GB]
,CASE WHEN max_size = -1 THEN -1
ELSE CONVERT(DECIMAL(18, 2), max_size / 131072.0)
END AS [Max Size in GB]
FROM sys.master_files WITH ( NOLOCK )
WHERE DB_NAME([database_id]) = ''?''
ORDER BY DB_NAME([database_id])
OPTION ( RECOMPILE );
'
答案 1 :(得分:0)
我发现了问题所在。
对于该服务器中的所有其他数据库,我使用名为Latin1_General_CI_AS的排序规则。
对于我遇到错误的数据库,我使用名为SQL_Latin1_General_CP1_CI_AS的排序规则。
我刚刚将DMV的名称放在小写字母中,并且工作正常。
我已根据marc_s和Vladimir的建议将dbo.sysfiles更改为sys.sysfiles,但现在两种方式都可以正常工作。
感谢和问候 马塞洛