http://www.perlmonks.org?node_id=836715


in reply to DBI - Table names & placeholders

Ask yourself what you're trying to accomplish. Are you trying to build an elegant abstraction layer for maintaining several tables? Are you trying to crank up the throughput of your PERL program? Are you trying to crank up the shared performance of your database server? Are you trying to get your work done before sunrise?

In a perfect world, these goals would all be aligned. In the real world, they aren't, exactly.

You're not dealing with Oracle, so that helps. Prepared statements can make an enormous difference to Oracle shared database performance. It makes sense to commit ugliness in your PERL program to make Oracle faster, just because it's so doggone expensive.

You can make your PERL program elegant by creating a simple little statement-template scheme, substituting in the table name you need.

You can make your PERL program and your data base a little faster by preparing each variant just once, and reusing the appropriate prepared statement each time you need it. But, unless you're going to use these statements tens of thousands of times, it isn't worth the trouble; you'll sacrifice a lot of time getting it right in return for a little time saved.