It may look like a lot of queries, but if they are optimized correctly and the db schema is consistent, it should not be too much of a problem.
I've used 2 method of profiling for the db queries in time.
The first, and most easy to implement is to use the microtime() fnuction just before sending the query and just after, and storing the delta in an associative array, like this:
PHP Code:
$sql=<<<SQL
SELECT *
FROM itemList
WHERE creaDt BETWEEN $startEpoch AND $endEpoch
SQL;
$beg=microtime(true);
$r=$objDb->doQuery($sql);
$end=microtime(true);
$_SESSION['sqlProfile'][$sql][]=$end-$beg;
the $objDb object is a sql wrapper I designed specifically for my needs. I usually would place teh profile in the wrapper.
Anyway, after displaying the page, I would just point my browser on a page who dumps the session profiling array, and it will display me how many times each query have been ran, and how many microseconds it have taken.
Remember that this time may include the db connection time and data transfer, not only the db query time.
If your query return a lot of rows, it may be a concern.
The second way of profiling would be with the excellent xdebug (
http://www.xdebug.org) php extension, and with the wincachgrind utility (
http://sourceforge.net/projects/wincachegrind/)
When configured to do so, xdebug can output a trace file on your server (
documentation and screenshots here). By fetching this file and giving it to wincachegrind, you can have a listing of each and every function, native or custom, that the php engine has called, how many times they where called, and how many time on the total run time they took.
It may be difficult to read, especially if you are not confident with profiling tools, but when you seriously want to optimize, this is the way to go.