目录

sqlserver-查询数据库各表的数据量

目录

sqlserver 查询数据库各表的数据量

SELECT  a.name ,  b.rows  FROM    sysobjects AS a

INNER JOIN sysindexes AS b ON a.id = b.id

WHERE   ( a.type = ‘u’ )  AND ( b.indid IN ( 0, 1 ) )

ORDER BY b.rows DESC

select top 10 * from tablea order by Id desc

SELECT

db_name() as DbName,

t.NAME AS TableName,

s.Name AS SchemaName,

p.rows AS RowCounts,

SUM(a.total_pages) * 8 AS TotalSpaceKB,

CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS 总共占用空间MB,

SUM(a.used_pages) * 8 AS UsedSpaceKB,

CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB,

(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB,

CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB

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

LEFT OUTER JOIN

sys.schemas s ON t.schema_id = s.schema_id

WHERE

t.NAME NOT LIKE ‘dt%’

AND t.is_ms_shipped = 0

AND i.OBJECT_ID > 0

GROUP BY

t.Name, s.Name, p.Rows

ORDER BY

总共占用空间MB desc

USE [master] 
    GO
    ALTER DATABASE CS SET RECOVERY SIMPLE WITH NO_WAIT   ----blog为需要清除日志的数据库名称
    GO
    ALTER DATABASE CS SET RECOVERY SIMPLE   --简单模式   ----blog为需要清除日志的数据库名称
    GO
    USE CS     ----blog为需要清除日志的数据库名称
    GO
    DBCC SHRINKFILE (N'CS_log' , 11, TRUNCATEONLY)    ----blog_Log为需要清除日志的数据库名日志名称
    GO
    USE [master]
    GO

    ALTER DATABASE CS SET RECOVERY FULL WITH NO_WAIT   ----blog为需要清除日志的数据库名称

    GO

    ALTER DATABASE CS SET RECOVERY FULL  --还原为完全模式   ----blog为需要清除日志的数据库名称