我们开发了一个多用户n层WCF应用程序,其中中间层托管在IIS中。应用程序池标识设置为预定义(单个)用户。现在,SQL Server Profiler中的所有sql连接看起来都是一样的 - 我们不知道如何在单个客户端的跟踪中设置过滤器(当我点击时查看数据库中发生了什么在我的客户端实例中的东西。)
目前,我们误用了连接字符串的应用程序名称字段,并将其设置为当前用户ID。现在,我们只能过滤掉该用户的SQL调用。但是,据我所知,ADO.NET连接池基于连接字符串。因此,为每个用户创建连接池,因为从技术上讲,每个用户都有自己的连接字符串(只有应用程序名称字段不同,但无关紧要)。当大量用户同时访问服务和数据库时,这可能会导致性能问题。
对于单个客户端,是否有任何简单的SQL分析方法?是否可以以编程方式设置为连接,然后使用SQL Server Profiler过滤掉?
提前谢谢。
答案 0 :(得分:0)
好的,我做了以下事情。仍然使用连接字符串的应用程序名称,但有条件地 - 我创建了一个SqlDebug应用程序设置,如果为true,那么我只将用户特定信息附加到conn字符串(; Application Name = IdUser)并过滤掉当前用户在Profiler中的查询。这样,在“正常”条件下,连接池按预期工作。