zoukankan      html  css  js  c++  java
  • SQL查看所有表的大小

    --查看所有表的大小
    declare @id int
     
    declare @type character(2) 
    
    declare @pages int 
    
    declare @dbname sysname
     
    declare @dbsize dec(15,0)
     
    declare @bytesperpage dec(15,0)
     
    declare @pagesperMB dec(15,0)
     
    create table #spt_space
     
    (
     
    [objid] int null,
     
    [rows] int null,
     
    [reserved] dec(15) null,
     
    [data] dec(15) null,
     
    [indexp] dec(15) null,
     
    [unused] dec(15) null
     
    )
     
    set nocount on
     
    -- Create a cursor to loop through the user tables
     
    declare c_tables cursor for
     
    select id from sysobjects where xtype = 'U'
     
    open c_tables fetch next from c_tables into @id
     
    while @@fetch_status = 0
     
    begin
     
    /* Code from sp_spaceused */
     
    insert into #spt_space (objid, reserved)
     
    select objid = @id, sum(reserved)
     
    from sysindexes
     
    where indid in (0, 1, 255) and id = @id
     
    
    select @pages = sum(dpages)
     
    from sysindexes
     
    where indid < 2
     
    and id = @id
     
    select @pages = @pages + isnull(sum(used), 0)
     
    from sysindexes
     
    where indid = 255 and id = @id
     
    update #spt_space set data = @pages
     
    where objid = @id
     
    /* index: sum(used) where indid in (0, 1, 255) - data */
     
    update #spt_space
     
    set indexp = (select sum(used)
     
    from sysindexes
     
    where indid in (0, 1, 255)
     
    and id = @id) - data
     
    where objid = @id
     
    /* unused: sum(reserved) - sum(used) where indid in (0, 1, 255) */
     
    update #spt_space
     
    set unused = reserved - (
     
    select sum(used)
     
    from sysindexes
     
    where indid in (0, 1, 255) and id = @id
     
    )
     
    where objid = @id
     
    update #spt_space set [rows] = i.[rows]
     
    from sysindexes i
     
    where i.indid < 2 and i.id = @id and objid = @id 
    
    fetch next from c_tables into @id
     
    end
     
    select TableName = (select left(name,60) from sysobjects where id = objid),
     
    [Rows] = convert(char(11), rows),
     
    ReservedKB = ltrim(str(reserved * d.low / 1024.,15,0) + ' ' + 'KB'),
     
    DataKB = ltrim(str(data * d.low / 1024.,15,0) + ' ' + 'KB'),
     
    IndexSizeKB = ltrim(str(indexp * d.low / 1024.,15,0) + ' ' + 'KB'),
     
    UnusedKB = ltrim(str(unused * d.low / 1024.,15,0) + ' ' + 'KB')
     
    from #spt_space, master.dbo.spt_values d
     
    where d.number = 1
     
    and d.type = 'E'
     
    order by reserved desc
     
    drop table #spt_space
     
    close c_tables
     
    deallocate c_tables
  • 相关阅读:
    非常有助于理解二极管PN结原理的资料
    5个CSS3技术实现设计增强
    如何读懂Web服务的系统架构图
    网页布局WEB标准的HTML结构化
    网站内容排版可用性分析
    用CSS做导航菜单的4个理由
    提高网站设计可用性(有效性)的10条原则
    dl,dt,dd标签 VS 传统table实现数据列表
    一些CSS3新技术
    21个CSS技巧
  • 原文地址:https://www.cnblogs.com/binghou/p/9097423.html
Copyright © 2011-2022 走看看