As described in this [Twitter thread|https://twitter.com/JavaOOQ/status/983960900318179328], we could add a new feature which generates power-of-2 IN lists so we get a better chance of reusing the execution plan, especially on Oracle and SQL Server.
So, let's assume we have the following 3 SELECT queries executed:
{code:java} SELECT * FROM my_table where id IN (1, 2, 3); SELECT * FROM my_table where id IN (4, 6, 6); SELECT * FROM my_table where id IN (7, 8, 9, 10); {code}
We can rewrite them as:
{code:java} SELECT * FROM my_table where id IN (1, 2, 3, 3); SELECT * FROM my_table where id IN (4, 6, 6, 6); SELECT * FROM my_table where id IN (7, 8, 9, 10); {code}
This way we reuse the same cached statement:
{code:java} SELECT * FROM my_table where id IN (?, ?, ?, ?); {code} |
|