Try:
SELECT
[TableName] = so.name,
[RowCount] = MAX(si.rows)
FROM
sysobjects AS so,
sysindexes AS si
WHERE
so.xtype = 'U'
AND
si.id = OBJECT_ID(so.name)
GROUP BY
so.name
ORDER BY
2 DESC
Это индексированные строки. Это, вероятно, только приближение, поскольку базы данных меняются много, и некоторые вещи могут не индексироваться, но это будет быстро.
EDIT: Обратите внимание, что so.xtype - это типы пользователей, что делает предположение, что вы не хотите, чтобы материал системы и только «настоящие» данные.
EDIT2: отсутствие пламени Примечание: возможно, плохая идея запросить таблицу sysobjects :).
EDIT3: конкретно рассмотреть требования, а не ассоциативно не присоединяется :)
SELECT sum(mycount) from
(SELECT
MAX(si.rows) AS mycount
FROM
sysobjects AS so
join sysindexes AS si on si.id = OBJECT_ID(so.name)
WHERE
so.xtype = 'U'
GROUP BY
so.name
) as mylist
Лучший способ сделать это - использовать встроенный отчет «Использование диска по верхним таблицам» –