Sp tempdbuse--Check usage of all tempdbs
From SybaseWiki
This sp cycles through all databases with 'tempdb' in the name and outputs usage information - size, percent used etc.
create procedure sp__tempdbuse as ------------------------------ -- Procedure: sp__tempdbuse -- Created: May 2008 -- Author: Bob Holmes (Email: cambob@gmail.com) -- Usage: sp__tempdbuse ------------------------------ set nocount on select name into #dblist from master..sysdatabases where name like "%tempdb%" declare db_cursor cursor for select name from #dblist declare @current char(20) open db_cursor fetch db_cursor into @current create table #results (dbname char(20), totalspace char(10), freespace char(10), pctused char(3)) while @@sqlstatus = 0 begin select db_name(dbid) 'DatabaseName', segmap 'Segmap', name 'Segname', sum(size) 'Allocated', sum(curunreservedpgs(dbid,lstart,unreservedpgs)) 'Free' into #SegAlloc from master.dbo.sysusages , syssegments where dbid = db_id(@current) and segmap & power(2,segment) = power(2,segment) and syssegments.name != 'system' and syssegments.name != 'logsegment' group by dbid,segmap,name order by dbid,segmap,name insert #results select DatabaseName, rtrim(convert(char(10),sum(Allocated)/512)), rtrim(convert(char(10),sum(Free)/512)), rtrim(convert(char(10),100 -(sum((Free)/512) * 100 / (sum (Allocated)/512)))) from #SegAlloc group by DatabaseName,Segname order by DatabaseName,Segname drop table #SegAlloc fetch db_cursor into @current end select * from #results close db_cursor deallocate cursor db_cursor return