我如何知道连接池和准备语句是否正常工作?

时间:2010-08-11 16:15:05

标签: java sql jdbc

我已经开发了一个近一年的网络应用程序,这是我在大学时开始的。完成后,我对大学期间编写的数据库代码进行了一些更改。我在大学时使用简单的JDBC,没有使用连接池和预处理语句。在过去的一个月里,由于查询和使用的数据增加,我意识到了潜力,并且需要使用连接池和准备好的语句。

我已经实现了连接池,但没有真正注意到性能的提升。如果性能有所提高,那么我的问题就会得到解答,但是如何验证连接池和准备好的语句是否正确使用?

3 个答案:

答案 0 :(得分:6)

我认为准备声明从安全性而非性能角度来看更为重要。如果你使用它们酷,你真的应该。只要您的SQL的100%是准备好的语句,您就是“正确使用它们”......

连接池是轻负载时您不会注意到的。 1或2或10个用户,您可能会看到0或接近0的差异。您需要创建某种负载测试测试来模拟100个并发用户,然后比较使用和不使用池的性能。

答案 1 :(得分:1)

如果打开和关闭连接不是速率限制,您将看不到性能改进。尝试查看数据库的分析工具以获取打开的连接列表。如果您在表面上关闭它们时看到来自进程的打开连接,则接口层正在进行连接池。

另请参阅this other SO question强制池连接丢弃。

(警告:我使用ADO和ADO.NET; JDBC可能表现不同。)

答案 2 :(得分:1)

您向连接池询问统计信息是否有效。如果连接池库不提供统计信息,请找到更好的库。