Есть ли способ в SQL Server 2008 найти таблицу с наибольшим количеством строк в базе данных?
SQL Server 2008 - найдите таблицу с большим количеством строк
Ответ 1
Это закроет вас:
SELECT
[TableName] = so.name,
[RowCount] = MAX(si.rows)
FROM
sysobjects so,
sysindexes si
WHERE
so.xtype = 'U'
AND
si.id = OBJECT_ID(so.name)
GROUP BY
so.name
ORDER BY
2 DESC
Ответ 2
Здесь в основном тот же T-SQL, что и Chris Ballance, но с использованием новых представлений каталога объектов вместо представлений совместимости:
SELECT SchemaName = schemas.[name],
TableName = tables.[name],
IndexName = indexes.[name],
IndexType =
CASE indexes.type
WHEN 0 THEN 'Heap'
WHEN 1 THEN 'Clustered'
END,
IndexPartitionCount = partition_info.PartitionCount,
IndexTotalRows = partition_info.TotalRows
FROM sys.tables
JOIN sys.indexes
ON tables.object_id = indexes.object_id
AND indexes.type IN ( 0, 1 )
JOIN ( SELECT object_id, index_id, PartitionCount = COUNT(*), TotalRows = SUM(rows)
FROM sys.partitions
GROUP BY object_id, index_id
) partition_info
ON indexes.object_id = partition_info.object_id
AND indexes.index_id = partition_info.index_id
JOIN sys.schemas ON tables.schema_id = schemas.schema_id
ORDER BY SchemaName, TableName;
Ответ 3
Я просто настроил свой SSMS 2008, чтобы показать следующие дополнительные столбцы для таблиц - Количество строк - Используемое пространство данных (KB)
для баз данных - Первичное местоположение данных - Последняя дата резервного копирования - Дата создания ....
Работает быстрее для меня большую часть времени, не открывая запрос, я просто нажимаю на заголовок столбца, чтобы перейти к ASC или DESC