Výkonnost PreparedStatementu
Výkonnost PreparedStatementu
Zakořeněným názorem je, že by se měly při práci s JDBC používat PreparedStatementy namísto obyčejných Statementu. Důvody jsou na bíledni, a to větší výkonnost a bezpečnost. Tyto argumenty Vám omlátí o hlavu kde kdo. Otázkou je jak je to s výkonností. Dlouhou dobu jsem si žil s názorem, že využití PreparedStatementu má opodstatnění až při vícenásobně opakovaném spuštění daného příkazu a to z důvodů vlastní režie na předzpracování dotazu.
Tento týden jsme tuto otázku řešili v diskusním fóru na builder.cz a po mých požadavcích na test, který jasně prokáže, jak to doopravdy je, se na světle vyloupla hodně slušná prezentace Understanding Prepared Statements in Oracle, která změnila názor na věc — minimálně pro Oracle. Doporučení jsou jasné.
- Prefer prepared statements
- Parse once — execute often
- Use bind variables where appropriate (Don’t over-bind)
- Do not rely on Cursor Sharing
- Use JDBC prepared statement caching
Vřele doporučuji k přečtení, i když vaše databázová platforma není zrovna Oracle. Samozřejmě je otázkou, jestli můžeme tyto doporučení brát jako bernou minci pro ostatní databáze…
Související články
Související epizody CZ Podcastu
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi a Filemon o novinkách v Javě 6 a webových frameworcích.
- #1 · Vývojová prostředí v Javě
První díl CZ Podcastu se věnuje vývojovým prostředím pro Javu.