Недавно один из моих коллег сделал замечание, что я не должен использовать«НРАВИТСЯ?» Более эффективно, чем LIKE '%' ||? || '%'
LIKE '%' ||? || '%'
скорее использовать
LIKE?
в SQL и затем заменить LIKE? маркер с LIKE '%' ||? || '%' перед выполнением SQL. Он отметил, что с помощью одного маркера параметров база данных DB2 будет кэшировать оператор всегда и таким образом сократить время подготовки SQL.
Тем не менее, я не уверен, что это точно или нет. Для меня это должно быть наоборот, поскольку мы делаем больше обработки, выполняя замену строки на SQL каждый раз, когда запрос выполняется.
Кто-нибудь знает, действительно ли один маркер ускоряет выполнение? Просто FYI - я использую Spring 2.5 JDBC framework, а версия DB2 - 9.2.
Мой вопрос в том, относится ли DB2 к LIKE? в отличие от «LIKE»% '||? ||'% '", поскольку кэширование и подготовка идут.
Почему бы не запустить несколько тестов? Цифры зависят от многих факторов, и этот конкретный случай (может или) может даже не иметь разницы в целом. – 2010-06-29 16:10:54
Указывает ли шаблон подстановки или предоставляется в заявлении, подготовленном Java? –
Я не уверен, что понимаю разницу. Что вы имеете в виду ", а затем замените маркер LIKE? LIKE '%' ||? || '%' до того, как я запустил SQL"? Разве это не тот же самый запрос? – Kobi