• I'm pretty similar in approach, Profiler is my bestest buddy.

    After that, since you're in 2005, you can look at sys.dm_exec_query_stats for an immediate picture into which queries are running long and how, for how long, etc., they've been running. That's aggregate information of queries that are currently in cache. You can go to sys.dm_exec_requests to see things that are currently executing. From that you can get the query handle and call to sys.dm_exec_sql_text to get the query text or sys.dm_exec_query_plan to see the execution plan.

    If you want to go a bit more old school you can still run sp_who2. It shows the basic information and any blocked processes as well as the process that is blocking.

    I still use execution time as a measure and look at wait stats to identify why things were running so long.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning