问题是这样的:如果一个数据库备份文件有800M!库中的表有60多个...
我想知道大概每个表在 800M多 的备份文件中所占空间的大小???这样想当然不是很确切,但是我现在碰到的问题 就是 想了解 到底因为哪些表的存在导致了 备份文件偏大。只要有个大概可参考的数据就OK了。该怎么办呢?

解决方案 »

  1.   

    --参考一下set nocount on
    create table #
    (
      表名 varchar(50),
      行数 int,
      保留空间 varchar(20),
      数据使用空间 varchar(20),
      索引使用空间 varchar(20),
      未使用空间 varchar(20)
    )declare @name varchar(50)
    set @name=''declare cur_1 cursor for
    select [name] from sysobjects where xtype='U'open cur_1
    fetch next from cur_1 into @name
    while(@@FETCH_STATUS=0)
    begin
     insert into # exec sp_spaceused @name
     fetch next from cur_1 into @name
    endselect 表名,数据使用空间 from #drop table #
    close cur_1
    deallocate cur_1
      

  2.   

    DECLARE tables_cursor CURSOR
       FOR
       SELECT name FROM sysobjects WHERE type = 'U'
    OPEN tables_cursor
    DECLARE @tablename sysname
    FETCH NEXT FROM tables_cursor INTO @tablename
    WHILE (@@FETCH_STATUS <> -1)
    BEGIN
     
       EXEC ('Sp_SpaceUsed ' + @tablename)
       FETCH NEXT FROM tables_cursor INTO @tablename
    END
    CLOSE tables_cursor
    DEALLOCATE tables_cursor
      

  3.   

    我执行了!可以解释一下:reserverd  data  index_size unused这几个的具体含义吗?
      

  4.   

    reserved varchar(18) 保留的空间总量。 
    Data varchar(18) 数据使用的空间总量。 
    index_size varchar(18) 索引使用的空间。 
    Unused varchar(18) 未用的空间量