sql >> データベース >  >> RDS >> Sqlserver

SQLServerのテーブルとインデックスのサイズ

    sp_spaceusedは、結合されたすべてのインデックスのサイズを提供します。

    テーブルの各インデックスのサイズが必要な場合は、次の2つのクエリのいずれかを使用します。

    SELECT
        i.name                  AS IndexName,
        SUM(s.used_page_count) * 8   AS IndexSizeKB
    FROM sys.dm_db_partition_stats  AS s 
    JOIN sys.indexes                AS i
    ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id
    WHERE s.[object_id] = object_id('dbo.TableName')
    GROUP BY i.name
    ORDER BY i.name
    
    SELECT
        i.name              AS IndexName,
        SUM(page_count * 8) AS IndexSizeKB
    FROM sys.dm_db_index_physical_stats(
        db_id(), object_id('dbo.TableName'), NULL, NULL, 'DETAILED') AS s
    JOIN sys.indexes AS i
    ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id
    GROUP BY i.name
    ORDER BY i.name
    

    結果は通常わずかに異なりますが、1%以内です。



    1. これら2つのクエリに違いはありますか?

    2. Laravel5.2の履歴テーブルの最新のエントリを取得するためのクエリ

    3. RULEからCOSTへのOracle10オプティマイザ:なぜですか?

    4. Eclipse-テーブルからのJPAエンティティ、スキーマはリストされていません