Perfomance prüfen

Queries zählen und ausgeben

  1. Datei /redaxo/src/core/lib/response.php öffnen

    Suche:

     // 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;
         }
    	
    
  2. Datei /redaxo/src/core/lib/sql/sql.php öffnen

    Suche:

     // 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();
    
  3. Anzahl der Queries immer einsehen

    Im Response-Header steht unter X-Count die Anzahl aller Queries.

  4. 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.