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

データベース内の各テーブルのレコード数を一覧表示するクエリ

    SQL Server 2005以降を使用している場合は、次の方法も使用できます。

    SELECT 
        t.NAME AS TableName,
        i.name as indexName,
        p.[Rows],
        sum(a.total_pages) as TotalPages, 
        sum(a.used_pages) as UsedPages, 
        sum(a.data_pages) as DataPages,
        (sum(a.total_pages) * 8) / 1024 as TotalSpaceMB, 
        (sum(a.used_pages) * 8) / 1024 as UsedSpaceMB, 
        (sum(a.data_pages) * 8) / 1024 as DataSpaceMB
    FROM 
        sys.tables t
    INNER JOIN      
        sys.indexes i ON t.OBJECT_ID = i.object_id
    INNER JOIN 
        sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
    INNER JOIN 
        sys.allocation_units a ON p.partition_id = a.container_id
    WHERE 
        t.NAME NOT LIKE 'dt%' AND
        i.OBJECT_ID > 255 AND   
        i.index_id <= 1
    GROUP BY 
        t.NAME, i.object_id, i.index_id, i.name, p.[Rows]
    ORDER BY 
        object_name(i.object_id) 
    

    私の意見では、sp_msforeachtableよりも扱いやすいと思います。 出力。



    1. ミリ秒単位の日付文字列にOracleto_date関数を使用する

    2. LEFT OUTER JOINは、どのようにして左側のテーブルに存在するよりも多くのレコードを返すことができますか?

    3. Hibernateを使用してOracleでLARGEBLOB(> 100MB)を永続化する方法

    4. postgresデータベースをsqliteに変換する方法