我可以看到通过ODBC连接发送的所有SQL语句吗?

问题描述:

我正在使用第三方应用程序使用ODBC来连接和更改数据库。在某些故障模式下,最终结果并非我所期望的。为了更好地理解它,我想要一些检查发送到数据库的所有语句的方法。有没有办法用ODBC来做到这一点?我可以看到通过ODBC连接发送的所有SQL语句吗?

我知道与JDBC我可以使用http://www.p6spy.com/看到发送的所有语句,例如调试休眠时。 p6spy是一个“代理”驱动程序,它记录发送的命令并将它们转发到真正的JDBC驱动程序。

另一种可能性可能是一个协议嗅探器能够捕捉在电线声明。虽然,我不确定ODBC是否包含标准有线协议,或者只是指定了API。

有谁知道现有的工具,可以让我做任何的这些东西?或者,我可以采取另一种方法吗?

我认为这是更容易阅读SQL一边的日志,无论数据库。例如,打开SQL Server上的监视器或查看MySQL中的日志。看起来,使用嗅探器会比它的价值更麻烦,但我想这取决于可用的工具。你使用的是什么RDBMS?

+0

我们正在使用DB2。我只对一次来自一台机器的流量感兴趣。它们通常也被它们编辑的模式隔离,所以可以使用单个模式中的日志。 – 2010-04-20 04:58:51

+0

那么,我已经使用DB2作为程序员,但从来没有DBA,所以我不能说任何具体的日志。但这听起来像一个体面的地方看。 – MJB 2010-04-20 10:54:42

ODBC指定您的程序如何与本地驱动程序进行通信,而不是本地驱动程序与远程数据库的通信方式。你的代理驱动程序的想法是健全的,你只需要找到一个。

您是否尝试过内置到ODBC跟踪?在ODBC数据源管理器中,有一个跟踪选项卡。我记得,所捕获的信息相当冗长。