Допустим, у меня есть базовый запрос, например:
SELECT a, b, c FROM x WHERE y=[Z]
В этом запросе [Z]
- это «переменная» с различными значениями, введенными в запрос.ситуация, когда мы хотим выполнить один и тот же запрос с двумя известными различными значениями [Z]
, скажем Z1
и Z2
.Мы можем сделать два отдельных запроса:
SELECT a, b, c FROM x WHERE y=Z1
SELECT a, b, c FROM x WHERE y=Z2
Или, возможно, мы можем программно создать другой запрос, например:
SELECT a, b, c FROM x WHERE y in (Z1, Z2)
Теперь у нас только один запрос (1 <2), ноПостроение запросов и деконструкция набора результатов становятся немного более сложными, поскольку мы больше не делаем простые простые запросы. </p>
Вопросы:
- Как называется этот вид оптимизации?(Стоит ли это делать?)
- Как это можно реализовать чисто из Java-приложения?
- Помогают ли существующие технологии Java ORM?