码迷,mamicode.com
首页 > 数据库 > 详细

【S】SQL SERVER检查临时表占用空间情况

时间:2014-09-14 08:56:46      阅读:362      评论:0      收藏:0      [点我收藏+]

标签:des   ar   for   sp   on   c   size   sql   r   

--检查已标记为需要删除的临时表
select * from
T_BAS_TEMPORARYTABLENAME;

--所有系统创建的临时表及视图
SELECT * FROM sys.tables
WHERE name LIKE ‘TMP%‘ 

-- 查看系统所有表占用的空间情况
create table tmpspace
(Fname varchar(50),
Frows int,
Freserved varchar(50),
  Fdata
varchar(50),
  Findex_size varchar(50),
  Funused
varchar(50));
 
insert into tmpspace
(Fname,Frows,Freserved,  Fdata,Findex_size,Funused)
exec sp_msforeachTable
@Command1="sp_spaceused ‘?‘"

select * from tmpspace where Fname like
‘TMP%‘ order by Fdata desc

--临时表占用的总大小(M)
select
SUM(CONVERT(DECIMAL,replace(fdata,‘KB‘,‘‘)))/1024 M from tmpspace where Fname
like ‘TMP%‘;
--drop table tmpspace;

--删除所有已经标记为需要删除的临时表
declare
@sql as varchar(max)
set @sql=‘‘
select @sql=@sql+‘drop table ‘+name+‘;‘
from sys.tables u
join T_BAS_TEMPORARYTABLENAME v on u.name=v.FTABLENAME and

( v.FPROCESSTYPE=1 or
v.FCREATEDATE<GETDATE()-1);
exec(@sql);
delete u from
T_BAS_TEMPORARYTABLENAME u where
not exists(select 1 from sys.tables where
u.ftablename=name );

【S】SQL SERVER检查临时表占用空间情况

标签:des   ar   for   sp   on   c   size   sql   r   

原文地址:http://www.cnblogs.com/springwind268/p/3970654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!