В настоящее время нет способа отфильтровать профилировщик по имени таблицы, а только по типу запроса (INSERT, UPDATE и т. Д.) Или по истекшему времени запроса.
Вот некоторый код, который вы можете попробовать, который может помочь вам сделать то, что вы хотите, хотя, обратите внимание, я не проверял его, но, надеюсь, он поможет вам начать работу.
По сути, он проходит по каждому профилированному запросу и использует preg_match, чтобы увидеть, был ли запрос к вашей таблице, и если нет, он сбрасывает информацию о запросе и продолжает, если это так, обновляет некоторую статистику. В конце каждого foreach, $ query, должен быть только запрос к таблице, которую вы хотите профилировать.
<?php
$tableName = 'my_table';
/** var $profiler Zend_Db_Profiler */
$profiler = $db->getProfiler();
$queries = $profiler->getQueryProfiles();
$totalQueries = 0;
$totalTime = 0;
if ($queries !== false) {
foreach ($queries as $index => $query) {
$queryString = $query->getQuery();
$t = preg_quote($tableName);
if (!preg_match("/UPDATE .?$t.? /i", $queryString) ||
!preg_match("/INSERT INTO .?$t.?/i", $queryString) ||
!preg_match("/DELETE FROM .?$t.?/i", $queryString) ||
!preg_match("/REPLACE .*?INTO .?$t.?/i", $queryString) ||
) {
unset($queries[$index]);
continue;
}
$totalQueries++;
$totalTime += $query->getElapsedSecs();
}
}