in reply to For a better efficiency and speed question!

How many rows does that query operate on? How many are returned? How long does the query alone take on the command-line interface?

If there are a lot of rows returned, you should look into fetching the rows sequentially (with DBI's fetchrow_hashref) instead of fetching the whole resultset into an arrayref.

You might find the following presentation of much help: http://www.cpan.org/authors/id/TIMB/DBI_AdvancedTalk_200708.pdf