Perfomance prüfen
Queries zählen und ausgeben
-
Datei
/redaxo/src/core/lib/response.php
öffnenSuche:
// ca. Zeile 126 public static function sendPage($content, $lastModified = null) {
Ersetze:
public static function sendPage($content, $lastModified = null) { header('X-COUNT: '.array_sum(rex_sql::$count)); if (rex::isDebugMode()) { ob_start();dump(rex_sql::$count);$content = ob_get_clean().$content; }
-
Datei
/redaxo/src/core/lib/sql/sql.php
öffnenSuche:
// ca. Zeile 50 protected static $pdo = [];
Ersetze:
protected static $pdo = []; public static $count = [];
Suche:
// ca. Zeile 266 public function execute(array $params = [], array $options = []) { if (!$this->stmt) { throw new rex_sql_exception('you need to prepare a query before calling execute()'); }
Ersetze:
public function execute(array $params = [], array $options = []) { if (!$this->stmt) { throw new rex_sql_exception('you need to prepare a query before calling execute()'); } self::$count[$this->query] = (isset(self::$count[$this->query]) ? self::$count[$this->query] : 0) + 1;
Suche:
// ca. Zeile 342 try { $this->stmt = $pdo->query($query); $this->rows = $this->stmt->rowCount();
Ersetze:
try { self::$count[$query] = (isset(self::$count[$query]) ? self::$count[$query] : 0) + 1; $this->stmt = $pdo->query($query); $this->rows = $this->stmt->rowCount();
-
Anzahl der Queries immer einsehen
Im Response-Header steht unter X-Count die Anzahl aller Queries.
-
Welche Queries wurden aufgerufen
Schaltet man im Backend unter System den Debug Modus an, erscheint auf der Website ein Dump mit der Anzahl der Queries und deren Aufrufe.