Všechny kombinace se určitě nezkoušejí - viz http://redbook.cs.berkeley.edu/redbook3/lec7.html případně hledejte na googlu "dynamické programování".
Čím složitější SQL příkaz, tím méně by se Vám měl v db vyskytovat. Totéž - pokud se v db objevují opakující se SQL příkazy, tak to povětšinou znamená, že se někde udělala chyba - např. špatně konfigurované Hibernate. Konečně u prepared statement hrozí riziko neoptimálních prováděcích plánů z důvodů optimalizace na slepo.