• You should try and find out the cause of the blocking and not recreate the TempDB or do something else with no connection to the blocking problem that you have. According to what you wrote there is a good chance that you have blocking chain (or maybe few blocking chains). A blocking chain is where each process is blocking a different process. For example Proccess A is blocking Process B. Process B is blocking Process C which is blocking process D. When we have a blocking chain, the most interesting process is the head of the blocking chain – that is the process that started the chain. In the example that I wrote this is process A. There is a good chance that if I'll solve the problem that caused Process A to block Process B, then all the blocking chain will be released. In order to find the head of the blocking chain you can use this SQL Statement:

    select Blocking.spid as HeadOfBlockingChain

    from master.dbo.sysprocesses Blocking inner join master.dbo.sysprocesses Blocked

    on Blocking.spid = Blocked.Blocked

    where Blocking.Blocked = 0

    After you get the list of blocking chains headers, you can check what those processes are doing. You can use dbccinput buffer or fn_get_sql function if you have service pack 3 or later. You can find more details about dbcc inputbuffer and fn_get_sql on BOL.

    Adi

    --------------------------------------------------------------
    To know how to ask questions and increase the chances of getting asnwers:
    http://www.sqlservercentral.com/articles/Best+Practices/61537/

    For better answers on performance questions, click on the following...
    http://www.sqlservercentral.com/articles/SQLServerCentral/66909/