2020年9月9日 星期三

[SQL]列出所有TABLE還有使用量 List tables and used size in SQL Server database

有時候這種指令還是蠻好用的,可以一次找出那些TABLE使用量是最高的

語法如下:

select schema_name(tab.schema_id) + '.' + tab.name 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) + '.' + tab.name

order by sum(spc.used_pages) desc

參考資料

https://dataedo.com/kb/query/sql-server/list-of-tables-by-their-size