diff --git a/framework/yii/db/Command.php b/framework/yii/db/Command.php index 719f47f490..9ac8459f25 100644 --- a/framework/yii/db/Command.php +++ b/framework/yii/db/Command.php @@ -275,13 +275,13 @@ class Command extends \yii\base\Component $rawSql = $this->getRawSql(); - Yii::trace("Executing SQL: $rawSql", __METHOD__); + Yii::info($rawSql, __METHOD__); if ($sql == '') { return 0; } - $token = "SQL: $sql"; + $token = $sql; try { Yii::beginProfile($token, __METHOD__); @@ -383,7 +383,7 @@ class Command extends \yii\base\Component $sql = $this->getSql(); $rawSql = $this->getRawSql(); - Yii::trace("Querying SQL: $rawSql", __METHOD__); + Yii::info($rawSql, __METHOD__); /** @var $cache \yii\caching\Cache */ if ($db->enableQueryCache && $method !== '') { @@ -403,7 +403,7 @@ class Command extends \yii\base\Component } } - $token = "SQL: $sql"; + $token = $sql; try { Yii::beginProfile($token, __METHOD__); diff --git a/framework/yii/debug/panels/DbPanel.php b/framework/yii/debug/panels/DbPanel.php index c9d8b7dcb5..d4e68b7d5b 100644 --- a/framework/yii/debug/panels/DbPanel.php +++ b/framework/yii/debug/panels/DbPanel.php @@ -24,10 +24,20 @@ class DbPanel extends Panel public function getSummary() { - $queryCount = count($this->data['messages']) / 2; + $timings = $this->calculateTimings(); + $queryCount = count($timings); + $queryTime = 0; + foreach ($timings as $timing) { + $queryTime += $timing[3]; + } + $queryTime = number_format($queryTime * 1000) . ' ms'; + $url = $this->getUrl(); $output = << - DB queries: $queryCount + + DB queries: $queryCount + time: $queryTime + EOD; return $queryCount > 0 ? $output : ''; @@ -35,6 +45,39 @@ EOD; public function getDetail() { + $timings = $this->calculateTimings(); + $rows = array(); + foreach ($timings as $timing) { + $duration = sprintf('%.1f ms', $timing[3] * 1000); + $procedure = str_repeat('', $timing[0]) . Html::encode($timing[1]); + $rows[] = "$duration$procedure"; + } + $rows = implode("\n", $rows); + + return <<Database Queries + + + + + + + + + +$rows + +
DurationQuery
+EOD; + } + + private $_timings; + + protected function calculateTimings() + { + if ($this->_timings !== null) { + return $this->_timings; + } $messages = $this->data['messages']; $timings = array(); $stack = array(); @@ -56,32 +99,7 @@ EOD; $timings[$last[4]] = array(count($stack), $last[0], $last[2], $delta); } ksort($timings); - - $rows = array(); - foreach ($timings as $timing) { - $time = date('Y.m.d, H:i:s.', $timing[2]) . round(($timing[2] - floor($timing[2])) * 10000); - $duration = sprintf('%.1f ms', $timing[3] * 1000); - $procedure = str_repeat('', $timing[0]) . Html::encode($timing[1]); - $rows[] = "$time$duration$procedure"; - } - $rows = implode("\n", $rows); - - return <<Database Queries - - - - - - - - - - -$rows - -
TimeDurationQuery
-EOD; + return $this->_timings = $timings; } public function save() diff --git a/framework/yii/debug/panels/RequestPanel.php b/framework/yii/debug/panels/RequestPanel.php index a2549297bc..4a4a484c0a 100644 --- a/framework/yii/debug/panels/RequestPanel.php +++ b/framework/yii/debug/panels/RequestPanel.php @@ -31,11 +31,11 @@ class RequestPanel extends Panel return << - Peak memory: $memory + Memory: $memory