java like_java – “LIKE?”比LIKE’%’||更有效?||’%’

博客讨论了在SQL查询中使用LIKE运算符的不同方式,特别是'%?%'与'?'的对比。作者的同事建议使用'LIKE?'以利用DB2数据库的PreparedStatement缓存,提高执行效率。内容解释了PreparedStatement在JDBC驱动程序级别的优化,以及数据库如何通过缓存查询计划来加速重复查询。尽管使用'LIKE?'可能在某些情况下更快,但这也取决于查询的具体上下文和执行频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近,我的一位同事评论说我不应该使用

LIKE ‘%’||?||’%’

而是使用

LIKE ?

在SQL中然后替换LIKE?在执行SQL之前,使用LIKE’%’||?||’%’标记.他指出,使用单个参数标记,DB2数据库将始终缓存该语句,从而减少SQL准备时间.

但是,我不确定它是否准确.对我而言应该是另一种方式,因为我们每次执行查询时都通过对SQL执行字符串替换来执行更多处理.

有人知道单个标记是否真的加快了执行速度?仅供参考 – 我使用的是Spring 2.5 JDBC框架,DB2版本是9.2.

我的问题是 – DB2是否对待“LIKE?”与“LIKE’%’||?||’%’”不同,就缓存和准备工作而言.

解决方法:

‘喜欢 ?’是PreparedStatement.准备好的语句是JDBC驱动程序级别的优化.我们的想法是数据库分析查询以决定如何最有效地处理它们.然后,DB可以缓存生成的查询计划,并在完整语句上键入.重用相同的语句会重用查询计划.所以基本上如果你使用不同的比较字符串多次运行相同的查询,并且如果查询计划保持缓存,那么是,使用“LIKE?”会更快.

关于PreparedStatements的一些有用(虽然有些过时)信息:

标签:java,sql,db2

来源: https://codeday.me/bug/20190627/1299580.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值