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: 
I have found shrinking the tempdb to often be a troublesome task.

The solution I have used previously is to set the initial size of the tempdb database to be the actual desired size of the database. Restarting the SQL Server Service will then re-create the tempdb database to this sepcified size.

You may also find the following Microsoft reference to be useful reading:

<http://support.microsoft.com/kb/307487/en-gb>
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

```