Herkese merhaba,

Bu yazıda SQL Server’da seçili veritabanındaki tabloların boyutlarına göre nasıl sıralanacağı hakkında bilgi vereceğim.

SQL Server’da bazı durumlarda (analiz, inceleme) tüm tabloların boyutlarına göre sıralanması istenebilir.

Aşağıdaki sorguyu kullanarak tabloları boyutlarına göre sıralayabilirsiniz.

SELECT t.name AS TableName,
       s.name AS SchemaName,
       p.rows AS RowCounts,
       SUM(a.total_pages) * 8 AS TotalSpaceKB,
       CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB,
       SUM(a.used_pages) * 8 AS UsedSpaceKB,
       CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB,
       (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB,
       CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB
FROM sys.tables t
    INNER JOIN sys.indexes i
        ON t.object_id = i.object_id
    INNER JOIN sys.partitions p
        ON i.object_id = p.object_id
           AND i.index_id = p.index_id
    INNER JOIN sys.allocation_units a
        ON p.partition_id = a.container_id
    LEFT OUTER JOIN sys.schemas s
        ON t.schema_id = s.schema_id
WHERE t.name NOT LIKE 'dt%'
      AND t.is_ms_shipped = 0
      AND i.object_id > 255
GROUP BY t.name,
         s.name,
         p.rows
ORDER BY UnusedSpaceMB DESC;

Sorguyu çalıştırdınız zaman aşağıdaki gibi bir sonuç alacaksınız.

SQL Server’da Seçili Veritabanındaki Tabloları Boyutlarına Göre Sıralamak

Ben bu sonucu AdventureWorks veritabanını kullanarak elde ettim. Sizler kendi veritabanlarınız üzerinde çalıştırabilirsiniz.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

363 Kez Okundu

Kategoriler: