我们正在使用第三方公司的软件,该软件与 SQL Server 数据库通信并检索和插入所有信息。
当用户使用此软件时,有时它会在特定步骤冻结。我需要对其进行故障排除并找出它发生的原因。
基本上我想使用这个 UI 软件,同时查看在我执行的每个步骤中运行的查询。
为此,我使用 SQL Profiler 查看导致此瓶颈的查询。但是,我将如何仅针对该特定软件且仅针对特定用户跟踪步骤?我不想看到所有其他信息。
我能够过滤 NTUserName,我假设它只是 UserName,对吗?
但是我怎样才能知道 ApplicationName 是什么?
如果我运行这个查询,我会看到 13 个不同的应用程序,包括 Microsoft Office、Report Server 等。它们听起来都不像我们使用的软件的名称。(MGA 系统。保险管理系统)
select distinct
program_name
from sys.dm_exec_sessions
where is_user_process = 1;
ApplicationName 将是连接字符串中指定的值,或者如果未指定,则为默认值,具体取决于客户端 API。例如,当未指定应用程序名称时,SqlClient 将使用通用的“.Net SqlClient 数据提供程序”值。