Question: My tempdb size is growing too much, as we are doing too many transactions in the database. Can someone let me know how to shrink this tempdb without restarting the server. I have tried DBCC SHRINKDATABASE and it didn't help

Thanks in advance

Answer: 
Your tempdb is the size it needs to be...

It will just grow again, just even more fragmented on disk and possibly blocking while it grows too.

More seriously, I'd set the size of tempdb to soemthing sensible and slightly larger than now, shut down SQL, delete the old files to be 110% sure, start SQL Server up again...
Even with "DBCC SHRINKFILE" you can receive warning like "DBCC SHRINKFILE: Page 1:878039 could not be moved because it is a work file page." that lead to no shrinking.

I found a blog that explain well that situation and tell how to workaround and how to successfully shrink tempdb without restarting SQL:
<http://adventuresinsql.com/2009/12/how-to-shrink-tempdb-in-sql-2005/>

So here is an exemple from that blog:

```
DBCC FREEPROCCACHE
GO
USE [tempdb]
GO
DBCC SHRINKFILE (N'tempdev')
GO
DBCC SHRINKDATABASE(N'tempdb')
GO

```