не вижу описания запросов в Zend Framework DB Profiler - PullRequest
0 голосов
/ 19 августа 2011

У меня на сайте разработки настроен и включен Zend Profiler.Я могу видеть все запросы, кроме запросов DESCRIBE, которые, как я знаю, должны выполняться каждый раз, когда я запрашиваю новый объект таблицы.Я использую что-то вроде этого, чтобы посмотреть на запросы:

$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);
}

Не уверен, почему я не вижу описания запросов.Кто-нибудь еще сталкивался с этой проблемой?

1 Ответ

0 голосов
/ 22 августа 2011

Возможно, вы активировали кеш метаданных для подключения к базе данных (что обычно очень хорошо, особенно в производственной среде).В этом случае запросы DESCRIBE не будут выполняться до истечения срока действия кэша.

Проверьте это, выполнив эту строку где-нибудь в приложении после начальной загрузки

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