bauer-martin.com

bauer-martin.com

Privater Blog über Programmierung, Cloud, Technik und was sonst noch so anfällt

10 Nov 2014

Anzahl der Rows aller Tabellen

Oft benötigt man die gesamte Anzahl an Rows einer Tabelle. Wenn diese sehr Groß ist, kann ein SELECT COUNT(*) problematisch werden. Zum einen dauert dieser dann sehr lang und erzeugt auch eine gewisse Last auf dem Server. Als Alternative bietet sich hier die dynamische View „sys.dm_db_partition_stats“ des SQL Servers an, welche diese Information bereithält.

Um die Anzahl der Rows aller Tabelle anzuzeigen reicht folgendes SQL Statement:

SELECT so.name as TableName, ddps.row_count as [RowCount]
FROM sys.objects AS so
    JOIN sys.indexes AS si ON si.OBJECT_ID = so.OBJECT_ID
    JOIN sys.dm_db_partition_stats AS ddps ON si.OBJECT_ID = ddps.OBJECT_ID  AND si.index_id = ddps.index_id
WHERE si.index_id < 2  AND so.is_ms_shipped = 0
ORDER BY ddps.row_count DESC