Sure there is a Db Profiling Tool available, it's call Zend_Db_Profiler and you can find out how to use it by reading the official documentation here: http://framework.zend.com/manual/en/zend.db.profiler.html#zend.db.profiler.using
Basically, you have to do something like this:
$db = Zend_Db_Table::getDefaultAdapter();
$profiler = $db->getProfiler();
$totalTime = $profiler->getTotalElapsedSecs();
$queryCount = $profiler->getTotalNumQueries();
As for the total load time of your page, if your are not using layout(s), then it's better to create a base controller class that gets the current (micro)time during predispatch and postDispatch methods, then you make it the base class for all your controllers. Perhaps something like this may do the job:
class Myapp_Controller_Action extends Zend_Controller_Action
{
protected $_startTime;
protected $_endTime;
protected $_totalTime;
public function preDispatch()
{
parent::preDispatch();
$this->_startTime = microtime(true);
}
public function postDispatch()
{
parent::postDispatch();
$this->_endTime = microtime(true);
$this->_totalTime = $this->_endTime - $this->_startTime;
// do something with $this->_totalTime;
}
}
And every controller in your application should extend Myapp_Controller_Action instead of Zend_Controller_Action:
class IndexController extends Myapp_Controller_Action
{
...
}