Storlek på tabeller


Tag : SQL Server,Table

WITH table_space_usage ( schema_name, table_name, used, reserved, ind_rows, 
     tbl_rows 
     ) 
     AS (SELECT s.NAME, 
                o.NAME, 
                p.used_page_count * 8, 
                p.reserved_page_count * 8, 
                p.row_count, 
                CASE 
                  WHEN i.index_id IN ( 0, 1 ) THEN p.row_count 
                  ELSE 0 
                END 
         FROM   sys.dm_db_partition_stats p 
                INNER JOIN sys.objects AS o 
                        ON o.object_id = p.object_id 
                INNER JOIN sys.schemas AS s 
                        ON s.schema_id = o.schema_id 
                LEFT OUTER JOIN sys.indexes AS i 
                             ON i.object_id = p.object_id 
                                AND i.index_id = p.index_id 
         WHERE  o.type_desc = 'USER_TABLE' 
            AND o.is_ms_shipped = 0) 
SELECT t.schema_name          AS 'Schema', 
       t.table_name           AS 'Tabell', 
       Sum(t.used / 1024)     AS 'Använt (Mb)', 
       Sum(t.reserved / 1024) AS 'Reserverat (Mb)', 
       Sum(t.tbl_rows)        AS 'Antal Rader' 
FROM   table_space_usage AS t 
GROUP  BY t.schema_name, 
          t.table_name 
ORDER  BY 'Använt (Mb)' DESC 
SELECT Object_name(object_id)            AS ObjName, 
       index_id                          AS IndexID, 
       Sum(in_row_data_page_count)       AS InRowDataPages, 
       Sum(lob_used_page_count)          AS LargeObjectPages, 
       Sum(row_overflow_used_page_count) AS RowOverflowPages, 
       Sum(row_count)                    AS Rows 
FROM   sys.dm_db_partition_stats 
GROUP  BY object_id, 
          index_id 

go

About

Det här är min digitala anteckningsbok för allt som har med databaser, automatisering och teknik att göra.
Här samlar jag alla de där skripten, lösningarna och knepen jag byggt på mig under åren – främst inom SQL Server och PowerShell.
Istället för att de ska ligga och damma i en glömd mapp delar jag med mig av dem här, så att både jag själv (när minnet sviker) och du förhoppningsvis kan spara några timmars klickande.