声明的成本是多少

Old*_*eon 5 java sql jdbc

如果我一次只使用一个Statement,那么将它与我的一起缓存是值得的Connection.我已经缓存了连接,所以我几乎可以免费缓存语句.

基本上我想我是在询问创建语句是否有任何成本/开销.我完全理解创建预准备语句的好处.我在Connection.createStatement()这里专门谈论.

Old*_*eon 0

对开源 jdbc 驱动程序 ( jtds ) 的一些研究表明,创建的每个语句的对象开销如下。我试图计算Statement每次我想要查询数据库时创建一个新数据库的成本,而不是保留一个缓存数据库并重用它:

  1. A Connection- 大概缓存得如此微不足道。
  2. A TdsCore- 看起来像一个协议实现,但它被缓存得如此微不足道。
  3. A ResultSet
  4. ArrayList批处理项目的一个。
  5. ArrayList开放 s 的An ResultSet
  6. 列元数据。

因此,看起来Statements 成本的最高比例涉及已运行的任何查询留下的内容。