Java 使用JdbcPooledConnectionSource时检查连接的成本

Java 使用JdbcPooledConnectionSource时检查连接的成本,java,jdbc,database-connection,ormlite,Java,Jdbc,Database Connection,Ormlite,使用JdbcPooledConnectionSource时,可以让Ormlite在将连接移交给用户之前检查连接,如下所示: JdbcPooledConnectionSource connectionSource = new JdbcPooledConnectionSource("jdbc:h2:mem:account"); connectionSource.setTestBeforeGet(true); 让Ormlite进行检查的性能成本是多少?为什么我不让Ormlite检查连接 让

使用JdbcPooledConnectionSource时,可以让Ormlite在将连接移交给用户之前检查连接,如下所示:

JdbcPooledConnectionSource connectionSource =
     new JdbcPooledConnectionSource("jdbc:h2:mem:account");
connectionSource.setTestBeforeGet(true);
让Ormlite进行检查的性能成本是多少?为什么我不让Ormlite检查连接

让Ormlite进行检查的性能成本是多少

您可以查看
JdbcPooledConnectionSource
的源代码。在
testConnection(…)
方法中,它有效地执行以下操作:

connMetaData.connection.queryForLong(`SELECT 1`);
至于表现如何,这将取决于许多因素。这是对数据库服务器执行RPC,但不应影响服务器上的任何磁盘。因此,在现代系统上,我们所说的可能是10毫秒——也许更少

我认为评估成本的最佳方法是打开它并测试您的应用程序,然后关闭它,看看您是否注意到了差异

为什么我不让Ormlite检查连接

设置此设置的原因是为了防止池连接在使用时发生错误。我认为使用它是保守的

JdbcPooledConnectionSource
为您提供了验证连接的其他方法,而这些方法并非每次您获取池连接时都会用到。例如,如果您对某个非0值调用
setCheckConnectionsEveryMillis(…)
,它将分叉一个线程,每隔一段时间测试一次连接
60000将让线程在后台执行
SELECT 1
,这不会降低应用程序的速度

让Ormlite进行检查的性能成本是多少

您可以查看
JdbcPooledConnectionSource
的源代码。在
testConnection(…)
方法中,它有效地执行以下操作:

connMetaData.connection.queryForLong(`SELECT 1`);
至于表现如何,这将取决于许多因素。这是对数据库服务器执行RPC,但不应影响服务器上的任何磁盘。因此,在现代系统上,我们所说的可能是10毫秒——也许更少

我认为评估成本的最佳方法是打开它并测试您的应用程序,然后关闭它,看看您是否注意到了差异

为什么我不让Ormlite检查连接

设置此设置的原因是为了防止池连接在使用时发生错误。我认为使用它是保守的

JdbcPooledConnectionSource
为您提供了验证连接的其他方法,而这些方法并非每次您获取池连接时都会用到。例如,如果您对某个非0值调用
setCheckConnectionsEveryMillis(…)
,它将分叉一个线程,每隔一段时间测试一次连接
60000将让线程在后台执行
SELECT 1
,这不会降低应用程序的速度

让Ormlite进行检查的性能成本是多少

您可以查看
JdbcPooledConnectionSource
的源代码。在
testConnection(…)
方法中,它有效地执行以下操作:

connMetaData.connection.queryForLong(`SELECT 1`);
至于表现如何,这将取决于许多因素。这是对数据库服务器执行RPC,但不应影响服务器上的任何磁盘。因此,在现代系统上,我们所说的可能是10毫秒——也许更少

我认为评估成本的最佳方法是打开它并测试您的应用程序,然后关闭它,看看您是否注意到了差异

为什么我不让Ormlite检查连接

设置此设置的原因是为了防止池连接在使用时发生错误。我认为使用它是保守的

JdbcPooledConnectionSource
为您提供了验证连接的其他方法,而这些方法并非每次您获取池连接时都会用到。例如,如果您对某个非0值调用
setCheckConnectionsEveryMillis(…)
,它将分叉一个线程,每隔一段时间测试一次连接
60000将让线程在后台执行
SELECT 1
,这不会降低应用程序的速度

让Ormlite进行检查的性能成本是多少

您可以查看
JdbcPooledConnectionSource
的源代码。在
testConnection(…)
方法中,它有效地执行以下操作:

connMetaData.connection.queryForLong(`SELECT 1`);
至于表现如何,这将取决于许多因素。这是对数据库服务器执行RPC,但不应影响服务器上的任何磁盘。因此,在现代系统上,我们所说的可能是10毫秒——也许更少

我认为评估成本的最佳方法是打开它并测试您的应用程序,然后关闭它,看看您是否注意到了差异

为什么我不让Ormlite检查连接

设置此设置的原因是为了防止池连接在使用时发生错误。我认为使用它是保守的

JdbcPooledConnectionSource
为您提供了验证连接的其他方法,而这些方法并非每次您获取池连接时都会用到。例如,如果您对某个非0值调用
setCheckConnectionsEveryMillis(…)
,它将分叉一个线程,每隔一段时间测试一次连接
60000将让线程在后台执行
SELECT 1
,这不会降低应用程序的速度