• User Attivo

    Numero di query per pagina?

    Ciao,
    sapete un modo (o qualche funzione) per ricavare il numero di query utilizzate per generare una pagina??

    Per esempio su wordpress usando [php]<?php echo get_num_queries(); ?> queries, <?php timer_stop(1); ?> seconds.[/php]otteniamo il numero di query utilizzate e il tempo di esecuzione.

    Però get_num_queries() è una funzione di wordpress, e a me servirebbe qualcosa per misurare il numero di query in un sito qualunque...


  • User Attivo

    Non credo che esista un metodo valido per "un sito qualunque".
    L'unica soluzione che mi viene in mente è creare una funzione ad hoc per eseguire le query, che tra le altre cose incrementa un contatore.


  • User Attivo

    Puoi anche creare una semplicissima classe ad ogni tua query...
    es
    class contatore{
    private $nums;
    private $begin;
    private $end;
    function __construct($microtime){
    $this->nums = "";
    $this->begin = $microtime;
    }
    function query(){
    $this->nums++;
    }
    function add($num){
    $this->nums = $this->nums + $num;
    }
    function get_nums($microtime_end){

    $this->end = $microtime_end;
    return return $this->nums." query in ".($this->end - $this->begin);
    }
    }

    Poi, all'inizio del file php scrivi
    $counter = new contatore(microtime());

    Dopo ogni query scrivi
    $contatore->query();
    Se vuoi aggiungere un determinato numero di query, puoi fare
    $contatore->add(10);

    Poi, alla fine, restituisci il numero di query

    echo $contatore->get_nums(microtime());


  • User Attivo

    Grazie per la funzione, per siti futuri magari la implementerò, però adesso ho risolto in un altra maniera...
    Dato che ho la copia del mio sito anche in locale con il db e tutto,
    ho installato un programma "MONyog MySQL Monitor" che mi fornisce le statistiche sull utilizzo del database.
    Per creare la homepage mi risultava l'uso di 89 query (SELECT)... Ho provato a ottimizzare il codice e sono arrivato a 64.
    Per alcune pagine risulta addirittura 130 SELECT 😮

    Secondo voi è una cosa accettabile, o sto succhiando anche l'anima al server 😄 ??