List tables by their size in Azure SQL Database

Rene Castro - Dataedo Team Rene Castro 2018-12-10

Table of Contents:

    The query below returns tables in a database with the space they use, sorted by those that use more.


    select schema_name(tab.schema_id) + '.' + as [table],
        cast(sum(spc.used_pages * 8)/1024.00 as numeric(36, 2)) as used_mb,
        cast(sum(spc.total_pages * 8)/1024.00 as numeric(36, 2)) as allocated_mb
    from sys.tables tab
        inner join sys.indexes ind 
            on tab.object_id = ind.object_id
        inner join sys.partitions part 
            on ind.object_id = part.object_id and ind.index_id = part.index_id
        inner join sys.allocation_units spc
            on part.partition_id = spc.container_id
    group by schema_name(tab.schema_id) + '.' +
    order by sum(spc.used_pages) desc


    • table - table name with schema name
    • used_mb - space used in MB
    • allocated_mb - space allocated in MB


    • One row: represents one table in a database
    • Scope of rows: all tables in a database
    • Ordered by: table used size, from largest to smallest

    Sample results

    Tables in the AdventureWorksLT database, sorted from the ones that use more space to the ones that use less.

    There are no comments. Click here to write the first comment.

    By continuing to use our website, you consent to the use of cookies in accordance with our Privacy Policy.