了解JDBC跟踪日志

了解JDBC跟踪日志,jdbc,db2,monitoring,websphere-liberty,Jdbc,Db2,Monitoring,Websphere Liberty,我在应用程序上启用了JDBC跟踪日志记录。对于特定的execute语句,它会记录 [jcc][Thread:Default Executor-thread-28][SystemMonitor:stop] core: 43832.056996ms | network: 43393.592823ms | server: 41240.041ms [STMT@927443182] 核心、网络和服务器时间表示什么? 我猜core-是总时间。 但随后core!=网络+服务器时间有关这些字段的详细信息,请参

我在应用程序上启用了JDBC跟踪日志记录。对于特定的execute语句,它会记录

[jcc][Thread:Default Executor-thread-28][SystemMonitor:stop] core:
43832.056996ms | network: 43393.592823ms | server: 41240.041ms [STMT@927443182]
核心
网络
服务器
时间表示什么? 我猜
core
-是总时间。
但随后
core
!=<代码>网络+
服务器
时间

有关这些字段的详细信息,请参阅IBM知识中心主题

总之:

核心驱动程序时间:启用系统监视时收集的已用监视API时间的总和,以微秒为单位。通常,只监视可能导致网络I/O或数据库服务器交互的API

网络I/O时间:启用系统监视时收集的已用网络I/O时间之和,以微秒为单位。


服务器时间:启用系统监视时收集的所有报告的数据库服务器运行时间的总和,以微秒为单位。

这不是标准的JDBC功能,因此您确实需要添加更多信息(哪些JDBC跟踪日志记录、哪个库、应用程序服务器或用于此目的的其他东西,等等).我正在使用DB2驱动程序。Application Server-Websphere Liberty Profile哪种DB2驱动程序类型和版本?哪个DB2服务器版本?哪个liberty服务器版本?你能提供你正在使用的SQL语句吗?那么核心时间不是网络i/o+服务器的总和吗?我使用一些插入执行了executeBatch()。我登录应用程序的总时间等于核心时间。网络时间43393.592823ms是否包括服务器时间?这意味着网络i/o只需2153毫秒。不,核心!=网络+服务器。这样想可能更容易,计时告诉您在jdbc驱动程序(核心)中花费了多少时间,驱动程序和数据库之间的所有通信发生了多长时间(网络),以及在数据库本身(服务器)中处理请求花费了多少时间。之所以提供这三个时间段,是因为优化每一个时间段需要不同的技术和工具,并且知道在哪里花费时间以获得最大收益非常重要。这意味着executeBatch()花费的总时间应该是这三个时间段的总和。但当我在我的应用程序中测量它时,它总是等于记录在jdbc跟踪日志中的核心时间。一些驱动程序操作可以在本地进行,这不需要网络或服务器时间,只需要核心。由于核心定时监控驱动程序API,对于需要往返db的操作,驱动程序API中的运行时间将包括往返时间,即网络和系统。