基本上我有一堆性能分析,[给予天真的实际操作]声称70%的时间花费在我们的Web应用程序在重负载下的同步,并且主要在数据读取器内部调用的SNIReadSyncOverAsync中。 (SNIReadSyncOverAsync实际上结束了坐在一个kernalbase.dll!WaitForSingleObjectEx)这将是有益的,看看这些等待是主叫方发起还是主叫发起。有没有办法从SQL Server中看到传入的缓冲区/记录?
有没有办法在Visual Studio争用或并发报告中看到(解释)它?或者以其他方式?
更重要的是,为了我的理解,有没有办法在数据读取器使用数据之前看到保存数据的传入缓冲区?
也许,这是不是你在找什么,但你是否知道,使用[SQL事件探查器(http://msdn.microsoft.com/en-us/library/ms190378.aspx )你可以查看在sql server实例上发生的所有请求吗? – paqogomez
是的。 :) Profiler很棒。这个问题是半好奇,半实用主义。我对从SQL服务器接收数据时缓冲区中客户端发生的事情感兴趣。从实际的笔记中,我试图弄清楚应用程序是否保持客户端(I/O)缓冲区相对空或者是否填满。如果SQL事件探查器可以提供特定于应用程序的客户端统计信息,它可能会工作,但如果存在,我不知道这种能力。如果它解决了我的问题,但我仍然想知道上述出于好奇。 –