2011-08-19 66 views
0

我有zend数据库分析器设置并在我的开发站点中打开。我可以看到除DESCRIBE查询以外的所有查询,我知道每次询问新的表格对象时都应该运行这些查询。我正在使用类似这样的查询查询:在zend框架中看不到描述查询db profiler

$db = Zend_Registry::get('db'); 
$profiler = new Zend_Db_Profiler(); 
$profiler->setEnabled(true); 
$db->setProfiler($profiler); 

$i = 1; 
$output = 'PROFILE FOR: '.$_SERVER['REQUEST_URI'] . "\n"; 

    foreach ($profiler->getQueryProfiles() as $query) { 
     $output .= "Query ".$i++.": ".$query->getQuery(). "\n"; 
    } 
    $output .= 'Average query length: ' . $totalTime/$queryCount . 
       ' seconds' . "\n"; 

    $output .= 'Queries per second: ' . $queryCount/$totalTime . "\n"; 
    $output .= 'Longest query length: ' . $longestTime . "\n"; 
    $output .= "Longest query: \n" . $longestQuery . "\n\n"; 

    file_put_contents('/tmp/zend_profiler.log', $output, FILE_APPEND); 
} 

不知道为什么我看不到描述的查询。有其他人遇到这个问题吗?

回答

0

也许你已经为你的数据库连接激活了元数据缓存(这通常是一件非常好的事,特别是在生产中)。在这种情况下,DESCRIBE查询将不会执行,直到缓存过期。

由引导某处后执行此行中的应用程序验证它

if (null != Zend_Db_Table_Abstract::getDefaultMetadataCache()) { 
    echo "Cache is active, describe queries not run"; 
} else { 
    echo "Cache is not active"; 
}