The fastest way to get log space information for all the databases under a SQL Server instance is to use the following T-SQL command:
DBCC SQLPERF(LOGSPACE)
The above command returns a record for each database under the current SQL Server instance which contains the following information:
– Database Name
– Log Size (MB)
– log Space Used (%)
– Status
Additionally, if you like to process this information, you can do so by first storing it into a temporary table.
You can do this as follows:
–Step 1: If temporary table exists, then drop it
IF Object_id(N’tempdb..#tempTbl’) IS NOT NULL
DROP TABLE #temptbl
–Step 2: Create temporary table
CREATE TABLE #temptbl
( dbname VARCHAR(250),
logsize FLOAT,
logspaceused FLOAT,
status INT
)
–Step 3: Populate temporary table with log size information
INSERT INTO #tempTbl
EXEC(‘DBCC SQLPERF(LOGSPACE)’)
–Step 4: Process the temporary table
–Examples:
SELECT *
FROM #tempTbl
ORDER BY logsize DESC
SELECT *
FROM #tempTbl
ORDER BY logspaceused ASC
I hope you enjoyed the post as much as I did writing it! 🙂
Artemakis Artemiou, a distinguished Senior Database and Software Architect, brings over 20 years of expertise to the IT industry. A Certified Database, Cloud, and AI professional, he earned the Microsoft Data Platform MVP title for nine consecutive years (2009-2018). As the founder of SQLNetHub and GnoelixiAI Hub, Artemakis is dedicated to sharing his knowledge and democratizing education on various fields such as: Databases, Cloud, AI, and Software Development. His commitment to simplicity and knowledge sharing defines his impactful presence in the tech community.
I prefer to use sys.master_files and FILEPROPERTY([file_name], 'spaceused') to get the space used. Yes, you need to convert from pages to MB, but that's an easy conversion.
Just goes to show that there is always more than 1 way to do things in SQL Server
Hi Jack,
Thank you for your comment.
Yes, of course! That's one of the things I really like in SQL Server; it allows you to do the same thing using different ways! This is what I call flexibility!
Cheers