diff --git a/tools/profiling/Controller.php b/tools/profiling/Controller.php index c110a4154..e31daf86d 100644 --- a/tools/profiling/Controller.php +++ b/tools/profiling/Controller.php @@ -111,6 +111,15 @@ abstract class Controller extends ControllerCore return ''.$n.' quer'.($n == 1 ? 'y' : 'ies').''; } + private function displayRowsBrowsed($n) + { + if ($n > 200) + return ''.$n.' rows browsed'; + if ($n > 50) + return ''.$n.' rows browsed'; + return ''.$n.' row'.($n == 1 ? '' : 's').' browsed'; + } + private function displayLoadTimeColor($n, $kikoo = false) { if ($n > 1) @@ -378,7 +387,16 @@ abstract class Controller extends ControllerCore $queries = Db::getInstance()->queries; uasort($queries, 'prestashop_querytime_sort'); foreach ($queries as $data) - echo $hr.'getTimeColor($data['time'] * 1000).'>'.round($data['time'] * 1000, 3).' ms '.$data['query'].'
in '.$data['file'].':'.$data['line']; + { + echo $hr.'getTimeColor($data['time'] * 1000).'>'.round($data['time'] * 1000, 3).' ms '.$data['query'].'
in '.$data['file'].':'.$data['line'].'
'; + $explain = Db::getInstance()->executeS('explain '.$data['query']); + if (stristr($explain[0]['Extra'], 'filesort')) + echo 'getTimeColor($data['time'] * 1000).'>USING FILESORT - '; + $browsed_rows = 1; + foreach ($explain as $row) + $browsed_rows *= $row['rows']; + echo $this->displayRowsBrowsed($browsed_rows); + } echo '

Doubles (IDs replaced by "XX") (total = '.count(Db::getInstance()->uniqQueries).')

';