2011-08-19 21 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"; 
}