Thursday, June 02, 2011
« 收缩SQLServer LDF 文件 | Main | ASP.NET 生成静态文件缓存 »

有时候需要统计数据库里面的空间占用情况, 用以下SQL实现

SELECT 
TableName = obj.name,  
TotalRows = prt.rows,  
[SpaceUsed(KB)] = SUM(alloc.used_pages)*8  
FROM sys.objects obj  
JOIN sys.indexes idx on obj.object_id = idx.object_id  
JOIN sys.partitions prt on obj.object_id = prt.object_id  
JOIN sys.allocation_units alloc on alloc.container_id = prt.partition_id  
WHERE 
obj.type = 'U' AND idx.index_id IN (0, 1)  
GROUP BY obj.name, prt.rows 
ORDER BY TableName