|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
SQL Profiler blocks while replaying in the order they were traced"in the order they were traced", everything starts fine, but when it reachs 8%, the profiler freeze. The interface doesn't respond. I can't even stop the replay. With Query Analyzer I run sp_who2, see a process blocked. Killing the blocking process makes everything run fine again. It freezes twice before the end, I kill the blocking processes and everything goes till the end. If I replay it with multiple threads the problem doesn't occur. I thought: 1) If there's a deadlock, after sometime the server should kill one process and the trace should continue executing. 2) It should happen more often in the multiple threads execution since the problem doesn't happen in the production system. I don't understand this. Can anyone here explain to me what's happening? Notes: The "Display replay results" checkbox selection doesn't matter. I'm using SQL Server 2000. kind regards, Paulo Paulo Eduardo Neves (paulone***@gmail.com) writes:
Show quote > I've recorded a SQL Profiler trace file. When I replay it selecting I have never played with Profiler replaying, but it sounds that your> "in the order they were traced", everything starts fine, but when it > reachs 8%, the profiler freeze. The interface doesn't respond. I > can't even stop the replay. > > With Query Analyzer I run sp_who2, see a process blocked. Killing the > blocking process makes everything run fine again. It freezes twice > before the end, I kill the blocking processes and everything goes > till the end. > > If I replay it with multiple threads the problem doesn't occur. > I thought: > 1) If there's a deadlock, after sometime the server should kill one > process and the trace should continue executing. trace have multiple spids, and when you replay the trace, one spid blocks the other. (Unless there is some other activity on the server that gets in the way.) Indeed you have a deadlock, but not one that SQL Server will be able to detect. The spid is blocked, and waiting for another spid up to clean up its act. But that is not going to happen, because Profiler is running single-threaded, and thus waiting for the blocked spid to complete. > 2) It should happen more often in the multiple threads execution When you run multi-threaded, Profiler does not get blocked, because> since the problem doesn't happen in the production system. presumably Profiler uses one thread per spid, so if one spid gets blocked by another, the blocking situation gets resolved. -- Erland Sommarskog, SQL Server MVP, esq***@sommarskog.se Books Online for SQL Server 2005 at http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx Books Online for SQL Server 2000 at http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx |
|||||||||||||||||||||||