Blog Post

Drive Space

,

I found a cool series of scripts from Jeremiah Peschka on getting disk space from SQL Server. They’re useful queries, and I think for the most part I like getting the information from sys.sysaltfiles for information on my databases.

However, I thought the comment for this query was misnamed:

-- how full is each drive?
SELECT drive_letter ,
      
SUM(size_in_mb) AS size_in_mb
FROM   #db_files AS df
GROUP BY drive_letter
ORDER BY drive_letter ;

Sys.sysaltfiles doesn’t have the drive size. In fact. it’s hard to get the drive size in T-SQL.

Finding the drive size is complex. I’ve seen lots of people using sp_OA procedures, or the CLR, or even xp_cmdshell. Powershell makes it easy, but not everyone has that installed (yet).

I’m amazed that xp_fixeddrives doesn’t give this. I know it’s undocumented, but why doesn’t it grab mount points and total size? Why isn’t it documented? That’s a topic for another day, but I’d have thought that at some point we could get more information about the OS from SQL Server easily.

For now, I’d use the xp_fixeddrives to get the local disk drive name and then the TotalSize property from the FileSystemObject using sp_OA procedures as outlined in the first link above.

Rate

You rated this post out of 5. Change rating

Share

Share

Rate

You rated this post out of 5. Change rating