Search This Blog

Showing posts with label SQL Server Free space available in Database. Show all posts
Showing posts with label SQL Server Free space available in Database. Show all posts

SQL Server Free space available in Database

This statement  will let you know what percent free space available in your selected database, this is a very useful script for those who are managing the data file size manually based on past data growth report.
SELECT AU.reserved AS Reserved_space,AU.unused as UnusedSpace,
    (AU.unallocated+AU.unused)*100/(AU.reserved+AU.unallocated) AS free_space_pct
FROM 
    (
        SELECT AU.reserved,AU.reserved-AU.used AS unused,
            CASE WHEN SF.db_size >= AU.reserved THEN (SF.db_size-AU.reserved) ELSE 0 END AS unallocated
         FROM 
                 (
                    SELECT 
                        SUM(CAST(CASE WHEN SF.status & 64 = 0 THEN SF.size ELSE 0 END AS DECIMAL(38, 2))) AS db_size
                    FROM dbo.sysfiles AS SF
                ) AS SF 
                CROSS JOIN
                        (SELECT SUM(CAST(A.total_pages AS DECIMAL(38, 2))) AS reserved,
                                SUM(CAST(A.used_pages AS DECIMAL(38, 2))) AS used
                            FROM sys.partitions AS P INNER JOIN sys.allocation_units AS A on A.container_id = P.partition_id
                        ) AS AU
    ) AS AU;