La tecnica di cui parli si chiama caching ed e' usata un po' ovunque proprio perche' ricalcolare ogni volta i dati e' spesso uno spreco non necessario di risorse. Ci sono diverse tecniche per fare il caching di query in PHP, ti consiglio di cercare un po' in giro perche' trattarle tutte qui sarebbe un po' impegnativo

Per avere un rapporto delle query eseguite da una pagina serve un po' di lavoro preparatorio, la funzione che menzionavi nel primo post e' specifica di wordpress e non generale. Puoi usare un wrapper invece di chiamare direttamente la funzione che esegue la query, cosi' da tenere traccia di cio' che viene eseguito; il wrapper tra l'altro potrebbe anche usare una cache, l'idea e' un po' questa: invece di chiamare direttamente la (ipotetica) funzione query() tu chiami invece query_wrapper(), quest'ultima ricevera' i parametri soliti e - prima di eseguire la vera query, o dopo averla eseguita - puo' fare altre operazioni come:
  • incrementare un contatore che tiene traccia delle query eseguite
  • calcolare il tempo necessario per l'esecuzione della query
  • registrare il risultato della query da qualche parte per poi poterlo restituire in una successiva chiamata per la stessa identica query invece di eseguirla di nuovo (questa e' la cache)
  • varie ed eventuali

si chiama wrapper proprio perche' "avvolge" la funzione originale aggiungendo funzionalita'.

Altrimenti puoi dare un'occhiata a Xdebug