Visualizzazione risultati 1 fino 11 di 11

Discussione: contare Query eseguite

  1. #1
    Guest

    Predefinito contare Query eseguite

    Per vedere quante query ho usato in un ora ( e magari in un lasso di tempo maggiore) devo controllare manualmente ( facendomi un altro database con il numero di query eseguite)? Perchè questo significherebbe anche raddoppiare il numero effettivo di q/h!

  2. #2
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Io direi di creare una funzione che esegua la query e che aumenta una variabile di sessione di 1 ogni volta che viene richiamata :D!

    Codice PHP:
    session_start(); /* ogni volta che si usano le sessioni questa funzione (session_start) va inserita a inizio pagina! */

    function query_count($sql) {
    if(!isset(
    $_SESSION["query_counter"])) {
    $_SESSION["query_counter"] = 1;
    } else {
    $_SESSION["query_counter"] += 1;
    }
    return
    mysql_query($sql);
    }
    P.S. E quando vorrai sapere il numero delle query eseguite ti basterà stampare $_SESSION["query_counter"], ovviamente a fine pagina dovresti resettarlo!

  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    La soluzione di mycarlo ha un problema: va benissimo finché si tratta di contare le query eseguite da un singolo utente per presentargli alla fine il risultato, ma è del tutto inefficace se devi contare anche le query eseguite dagli altri utenti del tuo sito (che vanno a cumularsi nel totale).

    Un approccio migliore sarebbe scrivere il risultato in un file di testo, che potrai consultare in qualsiasi momento.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    L'avatar di dapeco
    dapeco non è connesso Community Manager
    Data registrazione
    21-10-2003
    Residenza
    Brusasco (To)
    Messaggi
    4,909

    Predefinito

    Se la necessità è gestire l'errore stampato nel caso si esauriscano le queries conviene in ogni caso utilizzare gli appositi flag nell'htaccess, così da poter prendere l'errore generato e gestirlo.

    http://forum.it.altervista.org/php-m...tml#post658577
    Ho visto cose che voi utenti non potreste immaginare... siti da combattimento irregolari al largo dei bastioni di Orione. E ho visto account balenare nel buio vicino alle porte di Tannhauser. E tutti quei momenti andranno perduti nel tempo come lacrime nella pioggia. È tempo di sospendere...

    ASD Brusasco - C'è altro sport oltre al calcio!

    "Io sono vivo, voi siete morti" (Philip Dick, Ubik)

  5. #5
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Ma si potrebbe sempre risolvere con il session id almeno credo!

    Codice PHP:
    session_start();

    function
    query_count($sql) {
    $sid = session_id();
    if(!isset(
    $_SESSION[session_id()]["query_counter"])) {
    $_SESSION[$sid]["query_counter"] = 1;
    } else {
    $_SESSION[$sid]["query_counter"] += 1;
    }
    return
    mysql_query($sql);
    }
    E per stampare il risultato $_SESSION[$sid]["query_counter"]

  6. #6
    Guest

    Predefinito

    Non credo che sia una soluzione. Il problema è che io ho bisogno di sapere, ad esempio, in quale orario si fanno più query e quante sono, oppure la media utente/query... in questo modo tra l' altro saprei quando dover alzare di classe il database... se i picchi stanno diventando pericolosi... dopo questo periodo di beta, al mio sito inizierei a dare una grafica, a fare un pò di pubblicità... se avesse successo comprerei un .com o .it ... ma prima devo sapere le spese, il numero di q/h eseguite, il numero medio di q/h... ma questo vorrebbe dire sprecare molte query solo per contare quelle effettive...

  7. #7
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da mycarlo Visualizza messaggio
    Ma si potrebbe sempre risolvere con il session id almeno credo!
    ...
    E per stampare il risultato $_SESSION[$sid]["query_counter"]
    Come scritto nella documentazione ufficiale, una sessione è un legame server con un singolo utente. Questo significa che le "variabili di sessione" non solo non sono condivise, ma nemmeno reciprocamente accessibili.

    In altre parole, se lo script lo eseguiamo io, te e genuzzu otterremmo tre variabili $_SESSION['query_counter'] che non hanno nulla a che spartire... per quello via sessione lo script non è corretto.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Come scritto nella documentazione ufficiale, una sessione è un legame server con un singolo utente. Questo significa che le "variabili di sessione" non solo non sono condivise, ma nemmeno reciprocamente accessibili.

    In altre parole, se lo script lo eseguiamo io, te e genuzzu otterremmo tre variabili $_SESSION['query_counter'] che non hanno nulla a che spartire... per quello via sessione lo script non è corretto.

    Stammi bene...
    Ti cito in tutto e per tutto. Ieri ho eseguito l' upgrade alla classe 2 perchè in 20 minuti di test avevo usato 500 query!

    EDIT:
    Non si è trovato modo?
    Ultima modifica di seneca : 14-10-2009 alle ore 18.02.34

  9. #9
    L'avatar di dapeco
    dapeco non è connesso Community Manager
    Data registrazione
    21-10-2003
    Residenza
    Brusasco (To)
    Messaggi
    4,909

    Predefinito

    Se proprio desideri contarle, devi necessariamente utilizzare il metodo di dementialsite su un file.

    Il mio suggerimento è invece di loggare su un file solo quando le query sono esaurite, sfruttando la possibilità di gestire l'errore: se le query sono finite scrivi sul file quante volte avviene l'errore. In teoria c'è meno lavoro.
    Ho visto cose che voi utenti non potreste immaginare... siti da combattimento irregolari al largo dei bastioni di Orione. E ho visto account balenare nel buio vicino alle porte di Tannhauser. E tutti quei momenti andranno perduti nel tempo come lacrime nella pioggia. È tempo di sospendere...

    ASD Brusasco - C'è altro sport oltre al calcio!

    "Io sono vivo, voi siete morti" (Philip Dick, Ubik)

  10. #10
    Guest

    Predefinito

    Fatto! Ecco ora come si presenta il mio database:
    Codice PHP:
    Wed, 14 Oct 09 20:05:02 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= ''
    Wed, 14 Oct 09 20:05:20 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= ''
    Wed, 14 Oct 09 20:24:35 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= 'bosso'
    Wed, 14 Oct 09 20:24:45 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= 'bosso'
    Wed, 14 Oct 09 20:24:56 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= 'bach'
    Wed, 14 Oct 09 20:26:03 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= 'wynton marsalis'

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da genuzzu Visualizza messaggio
    Fatto! Ecco ora come si presenta il mio database:
    Codice PHP:
    Wed, 14 Oct 09 20:05:02 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= ''
    Wed, 14 Oct 09 20:05:20 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= ''
    Wed, 14 Oct 09 20:24:35 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= 'bosso'
    Wed, 14 Oct 09 20:24:45 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= 'bosso'
    Wed, 14 Oct 09 20:24:56 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= 'bach'
    Wed, 14 Oct 09 20:26:03 +0200- Eseguita query: SELECT TESTO FROM WIKI WHERE NOME= 'wynton marsalis'
    Riporto su questa mia discussione... ma se altervista sa quando ne abbiamo eseguite 500, deve contarle! Non si potrebbe implementare un grafico come per la pubblicità?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •