【转载】sp_spaceused2,看库里全部表占用的物理空间

摘要:
我经常使用sp_Spaceused查看表占用的空间,但一次只能查看一个对象。我今天有空的时候写了一个sp——空间使用2,你可以同时查看所有表的空间大小。
我常用sp_spaceused来查看表所占的空间大小,可是一次只能看一个对象的。
今天有空写了个sp_spaceused2,可以同时看全部表的空间大小。
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张use master
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
go
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
EXEC sp_addmessage @msgnum = 55000@severity = 16
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张   
@msgtext = N'Objects of type %s do not have space allocated.'
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张   
@lang = 'us_english',@replace = 'replace'
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
EXEC sp_addmessage @msgnum = 55000@severity = 16
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张   
@msgtext = N'没有为类型 %1! 的对象分配的空间。'
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张   
@lang = '简体中文',@replace = 'replace'
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
go
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
if exists (select 1 from sysobjects where name = 'sp_spaceused2' and type = 'P')
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
drop procedure sp_spaceused2
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
go
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
create procedure sp_spaceused2 (
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
@type varchar(2= 'U'-- The objects type we want size on.
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
 @updateusage varchar(5= false -- Param. for specifying that
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
     -- usage info. should be updated.
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
)
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
as
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
create table #spt_space
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张(
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 id  
int not null primary key,
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 name  sysname,
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 rows  
int null,
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 reserved 
dec(15null,
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 data  
dec(15null,
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 indexp  
dec(15null,
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 unused  
dec(15null
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张)
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
--  Check the object type.
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
if @type not in ('U','S'-- no physical data storage.
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
  begin
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张   
raiserror(55000,-1,-1,@type)
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张   
return (1)
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  
end
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
--  Check to see if user wants usages updated.
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张

【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
if @updateusage is not null
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
begin
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  
select @updateusage=lower(@updateusage)
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  
if @updateusage not in ('true','false')
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张   
begin
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张    
raiserror(15143,-1,-1,@updateusage)
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张    
return(1)
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张   
end
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
end
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
if @updateusage = 'true'
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
begin
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  
dbcc updateusage(0with no_infomsgs
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  
print ' '
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
end
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
set nocount on
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
--id, name, rows
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
insert into #spt_space (id, name, rows, data)
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
select i.id, o.name, i.rows, 0
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
from sysindexes i inner join sysobjects o on i.id = o.id 
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
where i.indid < 2 and o.type = @type
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
--reserved
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
update #spt_space
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
set reserved = r.reserved
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
from ( select o.id, sum(i.reserved) as reserved from sysindexes i inner join sysobjects o on i.id = o.id 
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
where i.indid in (01255and o.type = @type group by o.id) r
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
where #spt_space.id = r.id
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
--data
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
update #spt_space
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
set data = data + r.pages
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
from ( select o.id, isnull(sum(i.dpages),0as pages from sysindexes i inner join sysobjects o on i.id = o.id 
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
where i.indid < 2 and o.type = @type group by o.id) r
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
where #spt_space.id = r.id
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
update #spt_space
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
set data = data + r.used
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
from ( select o.id, isnull(sum(used), 0as used from sysindexes i inner join sysobjects o on i.id = o.id 
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
where i.indid = 255 and o.type = @type group by o.id) r
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
where #spt_space.id = r.id
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
--index page
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
update #spt_space
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
set indexp = r.used - data
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
from ( select o.id, sum(convert(dec(15),used)) as used from sysindexes i inner join sysobjects o on i.id = o.id 
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
where i.indid in (01255and o.type = @type group by o.id) r
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
where #spt_space.id = r.id
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
--unused page
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
update #spt_space
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
set unused = reserved - r.used
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
from ( select o.id, sum(convert(dec(15),used)) as used from sysindexes i inner join sysobjects o on i.id = o.id 
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
where i.indid in (01255and o.type = @type group by o.id) r
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
where #spt_space.id = r.id
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
--output
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
 select #spt_space.name,
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  rows 
= convert(char(11), rows),
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  reserved 
= ltrim(str(reserved * d.low / 1024.,15,0+
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张    
' ' + 'KB'),
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  data 
= ltrim(str(data * d.low / 1024.,15,0+
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张    
' ' + 'KB'),
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  index_size 
= ltrim(str(indexp * d.low / 1024.,15,0+
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张    
' ' + 'KB'),
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  unused 
= ltrim(str(unused * d.low / 1024.,15,0+
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张    
' ' + 'KB')
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张 
from #spt_space, master.dbo.spt_values d
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张  
where d.number = 1
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张   
and d.type = 'E'
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
return 0
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
go
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张sp_MS_marksystemobject 
'sp_spaceused2'
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
go
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
use [dbname]
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
exec sp_spaceused2
【转载】sp_spaceused2,看库里全部表占用的物理空间第1张
出处:http://blog.myspace.cn/1300316663/archive/2007/05/23/249582259.aspx

免责声明:文章转载自《【转载】sp_spaceused2,看库里全部表占用的物理空间》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt中如何禁掉所有UI操作以及注意事项(转)安装gnvm (windows下nodejs版本管理工具)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

mysql之排序查询

高级文章目录3:排序查询功能:1.按单个字段排序案例1:查询员工信息,要求工资从高到低排序2.为排序添加筛选条件案例1:部门编号˃=90的员工信息,按员工编号降序排序案例2:部门编号˃=90的人员信息,按输入时间排序。按表达式排序案例1:按年薪显示员工信息和年薪4按别名排序案例1按年薪升序查询员工信息5.按函数(长度)排序案例1查询员工姓名并按姓名长度减少...

面试了一个 31岁的iOS开发者,思绪万千,30岁以上的程序员还有哪些出路?

前言之前HR给了我一份简历,刚看到简历的第一眼,31岁?31岁,iOS开发工程师,工作经历7年,5年左右都在外包公司,2年左右在创业公司。iOS开发工程师这块,还是很少遇到30岁以上的开发,正好,来了一个30岁的开发,说实话,对我来说,还是蛮期待的,希望对我有所启示。这样的过程持续了半个小时那么年过350岁的程序员还有出路吗?作为一个8年的iOS开发,而且几...

硬中断与软中断的区别!

在多核系统上,一个中断通常只能中断一个CPU(也有一种特殊情况,即主机上有一个硬件通道。它可以在没有主CPU支持的情况下同时处理多个中断。软中断:1。软中断与硬中断非常相似。生成软中断的进程必须是当前正在运行的进程,因此它们不会中断CPU。...

数据可视化之powerBI技巧(十四)采悟:PowerBI中自制中文单位万和亿

最令人不快的事情之一是数据单元的设置。现在让我们看看如何通过设置测量值来切换单位。需要动态选择1万元和1亿元的单位进行显示。首先,手动创建单位表,然后使用单位表中的[unit]字段生成切片器。下一步是建立销售衡量标准。销售额=总和('订单'[销售额])为了按过滤单位显示销售额,SELECTEDVALUE函数可以根据切片器选择动态更改分母。如果切片器未进行任何...

微信小程序的模板消息与小程序订阅消息

有关获取分发权限的更多信息,请参阅applet侧消息订阅接口wx的步骤3。requestSubscribeMessage。有关发出订阅消息的调用接口的更多信息,请参阅服务器端消息发送接口subscribeMessage。sendwx。requestSubscribeMessage(Objectobject)基本库2.8.2。必须填写参数Objectobjec...

如何根据角色批量激活SAP Fiori服务

我们知道Fiori的角色不同于ERP,即使您的帐户具有SAP_ALL权限,但当您打开Fiori时,它也是空的:只有在您将Fiori所需的角色添加到帐户并激活相关服务时,才能使用Fioriapp。否则,打开Fioriapps将报告错误。可以通过GUI事务代码找到特定错误:/n/iwfnd/error_Log以查看特定原因。...