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