如题

解决方案 »

  1.   

    select top 10 object_name(id) as tablename
    from sysindexes
    group by object_name(id)
    order by sum(used) desc
      

  2.   

    DECLARE @object_id INT=0;
    DECLARE @sql NVARCHAR(MAX)='';
    select TOP 1 @object_id=id
    from sysindexes s
    order by s.reserved DESCSET @sql='SELECT TOP 10 name
      FROM sys.columns
      WHERE OBJECT_ID='+CAST(@object_id AS NVARCHAR);
    EXEC(@sql)
      

  3.   

    IF OBJECT_ID('tb')IS NOT NULL
        DROP TABLE tb
    GO
    CREATE TABLE tb
    (
    表名 SYSNAME, 记录数 INT, 
    保留空间 NVARCHAR(10), 
    使用空间 VARCHAR(10), 
    索引使用空间 VARCHAR(10), 
    未用空间 VARCHAR(10)
    )
    EXEC sp_MSForEachTable @command1=N'insert tb exec sp_spaceused ''?'''
    SELECT TOP 10* 
    FROM tb 
    ORDER BY 使用空间 DESC,记录数 DESC