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
  • 相关阅读:
    发布页面
    jquery 遍历
    深入实践Spring Boot1.4 运行与发布
    深入实践Spring Boot1.4 运行与发布
    深入实践Spring Boot1.4 运行与发布
    《OSPF和IS-IS详解》一1.5 ARPANET内的路由选择
    《OSPF和IS-IS详解》一1.5 ARPANET内的路由选择
    《OSPF和IS-IS详解》一1.5 ARPANET内的路由选择
    《OSPF和IS-IS详解》一1.5 ARPANET内的路由选择
    《Microduino实战》——2.3 Microduino STM32核心系列
  • 原文地址:https://www.cnblogs.com/binghou/p/9097423.html
Copyright © 2011-2022 走看看