源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

sql查看所有表大小的方法

  • 时间:2021-01-17 03:29 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:sql查看所有表大小的方法
[u]复制代码[/u] 代码如下:
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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部