Commenti(0)
La funzione BENCHMARK()
Testare la velocità di esecuzione di una determinata espressione SQL non sarà più un problema con questa ricetta
Per testare la velocità di esecuzione di un’espressione SQL, può risultare particolarmente utile la funzione BENCHMARK. La sua sintassi è la seguente:
1BENCHMARK(n, expr)n indica quante volte deve essere eseguita l’espressione, mentre expr è la funzione stessa. Può anche essere una query (tecnicamente, in questo contesto, è una subquery), ma deve necessariamente restituire un singolo valore; questo perchè una funzione SQL non può accettare un intero recordset come parametro.
BENCHMARK restituisce sempre 0, pertanto il suo risultato non è interessante. Invece, è il tempo di esecuzione della query che occorre osservare. Esso è mostrato a video dal client della riga di comando mysql e da molti client grafici.
Esempi d’uso:
Questa funzione deve viaggiare attraverso la rete, ma se il valore di n è sufficientemente alto questo lasso di tempo non sarà rilevante. La query deve essere elaborata anche dal parser e dall’ottimizzatore, ma anche questo non è rilevante, in quanto accade una sola volta. E’ proprio per questo che l’uso di BENCHMARK è più interessante rispetto all’esecuzione ripetuta dell’espressione che desideriamo testare: il ritardo dovuto alle comunicazioni di rete, al parsing e al piano di esecuzione della query avviene una sola volta, mentre l’esecuzione stessa può avvenire – poniamo – 10000 volte o 100000 volte. E’ comunque bene eseguire la query più volte se si desidera osservare in maniera un po’ più seria i tempi massimi e medi di esecuzione ripetuta dell’espressione.
Condividi su:
Esprimi un voto:
Argomenti chiave:

MySQL Report un tool di shell per tenere tutto sotto controllo