Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
The moose likes JDBC and the fly likes Prepared Statements, parameterized table names? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Databases » JDBC
Bookmark "Prepared Statements, parameterized table names?" Watch "Prepared Statements, parameterized table names?" New topic

Prepared Statements, parameterized table names?

chandana sapparapu
Ranch Hand

Joined: Sep 28, 2002
Posts: 63
I understand that using parameters for queries helps the DBMS to reuse optimization plans.
A query like
select * from x where y= ?

is better that "select * from x where y= 10"

My question is, is the optimization plan reusable for different tables..

like select * from ? where y=?.

Julian Kennedy
Ranch Hand

Joined: Aug 02, 2004
Posts: 823
Hi Chandana,

The optimiser would have to generate a new query plan for each table. One reason for this is that different tables may have different indexes so the method of accessing the data may be different. Even if the indexes, etc. were all the same on different tables, the optimised query plan only provides a template for substitution of values.

The same query using different values can be executed the same way. The same query using a different table must be executed differently (i.e. on a different table! )

chandana sapparapu
Ranch Hand

Joined: Sep 28, 2002
Posts: 63
Hi Julian,
Thanks for the reply. I also had a feeling that it varies from table to table, but just wanted to confirm it. Thanks for the details .

subject: Prepared Statements, parameterized table names?
Similar Threads
joins Vs nested queries
problem in mysql
Query Preparation
searching BETWEEN values?
Can anyone use IN clause of query with preparedStatement like below?