normalizedText = $query->getNormalizedText(); $maxExamples = CONFIG_MAX_NUMBER_OF_EXAMPLES; if($maxExamples) { $this->examples = new SlowestQueryList($maxExamples); } $this->addQuery($query); } function addQuery(& $query) { $this->count ++; $this->duration += $query->getDuration(); $formattedTimestamp = date('Y-m-d H:00:00', $query->getTimestamp()); if(!isset($this->hourlyStatistics[$formattedTimestamp])) { $this->hourlyStatistics[$formattedTimestamp]['count'] = 0; $this->hourlyStatistics[$formattedTimestamp]['duration'] = 0; } $this->hourlyStatistics[$formattedTimestamp]['count']++; $this->hourlyStatistics[$formattedTimestamp]['duration']+= $query->getDuration(); if($this->examples) { $this->examples->addQuery($query); } } function & getQuery() { return $this->examples->getLastQuery(); } function getNormalizedText() { return $this->normalizedText; } function getTotalDuration() { return $this->duration; } function getTimesExecuted() { return $this->count; } function getAverageDuration() { $average = 0; if($this->count > 0) { $average = ($this->duration/$this->count); } return $average; } function & getFilteredExamplesArray() { $returnExamples = false; $examples =& $this->examples->getSortedQueries(); $exampleCount = count($examples); for($i = 0; $i < $exampleCount; $i++) { $example =& $examples[$i]; if($example->getText() != $this->getNormalizedText()) { return $examples; } unset($example); } $examples = array(); return $examples; } function & getHourlyStatistics() { ksort($this->hourlyStatistics); return $this->hourlyStatistics; } } ?>