Sql server SQL客户端分析器?

Sql server SQL客户端分析器?,sql-server,profiling,monitoring,client-side,instrumentation,Sql Server,Profiling,Monitoring,Client Side,Instrumentation,我知道“SQL Server Profiler”,但是否有任何工具或方法可用于监视从客户端计算机发出的SQL查询 我现在想到的一些事情是: 1) SysInternals ProcMon可以记录并告知客户机上的可执行进程何时连接到sql server。是否有类似但更先进的工具可用于显示更多数据 2) 可用于客户端计算机的客户端库和API的任何调试版本或检测版本,以允许此类操作?您可以从ODBC数据源管理员(odbcad32.exe)启用ODBC跟踪。它生成的日志文件相当神秘,但它将为您提供登录用

我知道“SQL Server Profiler”,但是否有任何工具或方法可用于监视从客户端计算机发出的SQL查询

我现在想到的一些事情是:

1) SysInternals ProcMon可以记录并告知客户机上的可执行进程何时连接到sql server。是否有类似但更先进的工具可用于显示更多数据


2) 可用于客户端计算机的客户端库和API的任何调试版本或检测版本,以允许此类操作?

您可以从ODBC数据源管理员(odbcad32.exe)启用ODBC跟踪。它生成的日志文件相当神秘,但它将为您提供登录用户在该计算机上运行的SQL语句。还有一个标记为“所有用户标识的机器范围跟踪”的复选框,用于记录任何用户(包括服务)在该机器上运行的所有SQL语句

在断开并重新连接到SQL server之前,日志记录可能不会启动。因此,重新启动连接到SQL Server的任何程序/服务都是一个好主意。如果启用了连接池,这一点尤其重要,即使程序断开连接,连接池也会保持连接打开

另外,Windows 64位上有两个版本的ODBC数据源管理器,一个用于32位,另一个用于64位。因此,您需要为正在跟踪的程序的适当位启用日志记录

更新:您的另一个选择是使用类似的工具。由于它能够位于网络驱动程序级别,因此它可以拦截您的所有网络流量,包括但不限于SQL。这些被称为-和(w/)使用的标准


您可以从ODBC数据源管理员(odbcad32.exe)启用ODBC跟踪。它生成的日志文件相当神秘,但它将为您提供登录用户在该计算机上运行的SQL语句。还有一个标记为“所有用户标识的机器范围跟踪”的复选框,用于记录任何用户(包括服务)在该机器上运行的所有SQL语句

在断开并重新连接到SQL server之前,日志记录可能不会启动。因此,重新启动连接到SQL Server的任何程序/服务都是一个好主意。如果启用了连接池,这一点尤其重要,即使程序断开连接,连接池也会保持连接打开

另外,Windows 64位上有两个版本的ODBC数据源管理器,一个用于32位,另一个用于64位。因此,您需要为正在跟踪的程序的适当位启用日志记录

更新:您的另一个选择是使用类似的工具。由于它能够位于网络驱动程序级别,因此它可以拦截您的所有网络流量,包括但不限于SQL。这些被称为-和(w/)使用的标准


它仅在程序/服务使用ODBC数据源名称时适用,不是吗?或者,当设置为机器范围时,它也会捕获本机sql客户端?如果不是,则会有一个问题,我们是否可以捕获本机客户端通过定义的ODBC dsn的请求?它位于驱动程序级别。因此,只要您使用的是ODBC数据源管理器中列出的驱动程序之一,它就应该可以工作。请让我对您的评论和回答投赞成票,因为您指出了一些我不知道的事情(跟踪问题)。我们目前不使用ODBC,但这是未来有用的信息。。。。tnx无论如何,它仅在程序/服务使用ODBC数据源名称时适用,不是吗?或者,当设置为机器范围时,它也会捕获本机sql客户端?如果不是,则会有一个问题,我们是否可以捕获本机客户端通过定义的ODBC dsn的请求?它位于驱动程序级别。因此,只要您使用的是ODBC数据源管理器中列出的驱动程序之一,它就应该可以工作。请让我对您的评论和回答投赞成票,因为您指出了一些我不知道的事情(跟踪问题)。我们目前不使用ODBC,但这是未来有用的信息。。。。反正是tnx