SQL Server 2008 - найти таблицу с большинством строк - PullRequest
17 голосов
/ 01 октября 2009

Есть ли способ в SQL Server 2008 найти таблицу с наибольшим количеством строк в базе данных?

Ответы [ 3 ]

36 голосов
/ 01 октября 2009

Это приблизит вас:

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
9 голосов
/ 16 марта 2012

Вот в основном тот же T-SQL, который предоставил Крис Балланс, но с использованием новых представлений каталога объектов вместо представлений совместимости:

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;
0 голосов
/ 01 октября 2009

Я просто настроил SSMS 2008, чтобы отображались следующие дополнительные столбцы для столов - Количество строк - Используемое пространство данных (КБ)

для баз данных - Первичное расположение данных - Дата последней резервной копии - Дата создания ....

В большинстве случаев работает быстрее, не открывая запрос, я просто нажимаю на заголовок столбца, чтобы перейти к ASC или DESC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...