We aren’t looking for accuracy, so this works fine for us. The NOLOCKs helped e.g. when indexes were in the process of creating.
Fast way to count large tables.
SELECT
SCHEMA_NAME([Tables].[schema_id]) AS [SchemaName],
[Tables].[name] AS [TableName],
SUM([Partitions].[rows]) AS [TotalRowCount]
FROM [sys].[tables] AS [Tables] WITH (NOLOCK)
JOIN [sys].[partitions] AS [Partitions] WITH (NOLOCK)
ON [Tables].[object_id] = [Partitions].[object_id]
AND [Partitions].[index_id] IN (
0, 1
)
WHERE [Tables].name = N'TRANSACTIONS'
-- and [Partitions].[rows] > 0
GROUP BY SCHEMA_NAME([Tables].[schema_id]),
[Tables].[name];
