SHOW PROFILES
Sintassi
SHOW PROFILE [tipo [, tipo] ... ] [FOR QUERY n] [LIMIT num_righe [OFFSET offset]] tipo: ALL | BLOCK IO | CONTEXT SWITCHES | CPU | IPC | MEMORY | PAGE FAULTS | SOURCE | SWAPS
Spiegazione
Le istruzioni SHOW PROFILES
e
SHOW PROFILE
restituiscono informazioni sul profiling, che illustrano informazioni sull'utilizzo delle risorse da parte delle istruzioni eseguite nel corso della sessione corrente.
Il profiling è controllato dalla variabile di sessione profiling, il cui valore predefinito è 0 (OFF). Per abilitarlo, occorre impostare profiling a 1 oppure ON:
MariaDB [test]> SET profiling = 1; Query OK, 0 rows affected (0.00 sec)
SHOW PROFILES
mostra un elenco delle ultime istruzioni che sono state inviate al master. Le dimensioni della lista sono controllate dalla variabile di sessione profiling_history_size, il cui valore predefinito è 15. Il massimo è 100. Impostandolo a 0 si disabilita il profiling.
Viene tracciato il profilo di tutte le istruzioni eccetto SHOW PROFILES
, che perciò non comparirà nell'elenco. Anche per le istruzioni malformate viene tracciato il profilo. Ad esempio, SHOW PROFILING
è un'istruzione non corretta; eseguendola si ottiene un errore, però comparirà nella lista.
SHOW PROFILE
restituisce informazioni dettagliate su ogni singola istruzione. Senza la clausola FOR QUERY n
, l'output riguarderà le istruzioni più recenti. Se invece si utilizza FOR QUERY n
, SHOW PROFILE
mostra informazioni riguardanti l'istruzione n. I valori di n corrispondono ai valori di Query_ID
restituiti da SHOW PROFILES
.
La clausola LIMIT num_righe
può essere usata per limitare l'output al numero di righe specificato. Se LIMIT
è presente, OFFSET offset
può essere aggiunta per cominciare l'output dopo un numero di righe specificato da offset.
Per default, SHOW PROFILE
mostra le colonne Status e Duration. I valori di Status sono come i valori di State restituiti da SHOW PROCESSLIST
, sebbene per alcuni valori ci possano essere alcune differenze minori nell'interpretazione delle due istruzioni (si veda http://dev.mysql.com/doc/refman/5.1/en/thread-information.html).
Il valore opzionale tipo può essere specificato per richiedere alcune informazioni aggiuntive specifice:
ALL
tutte le informazioniBLOCK IO
i numeri di blocchi di input e di operazioni di outputCONTEXT SWITCHES
numeri di cambiamento di contesto volontari e involontariCPU
tempo di utilizzo della CPU da parte del sistema e dell'utenteIPC
numeri di messaggi inviati e ricevutiMEMORY
non è attualmente implementatoPAGE FAULTS
numeri di errori maggiori e minori delle pagineSOURCE
nomi di funzioni del codice sorgente, insieme al nome del file e al numero di riga nei quali si trovano le funzioniSWAPS
numero di swap
Il profiling è abilitato per sessione. Quando la sessione termina, le informazioni di profiling si perdono.
Esempi
MariaDB [(none)]> SELECT @@profiling; +-------------+ | @@profiling | +-------------+ | 0 | +-------------+ 1 row in set (0.00 sec) MariaDB [(none)]> SET profiling = 1; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> use test; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [test]> DROP TABLE IF EXISTS t1; Query OK, 0 rows affected, 1 warning (0.00 sec) MariaDB [test]> CREATE TABLE T1 (id INT); Query OK, 0 rows affected (0.24 sec) MariaDB [test]> SHOW PROFILES; +----------+------------+--------------------------+ | Query_ID | Duration | Query | +----------+------------+--------------------------+ | 1 | 0.00009200 | SELECT DATABASE() | | 2 | 0.00023800 | show databases | | 3 | 0.00018900 | show tables | | 4 | 0.00014700 | DROP TABLE IF EXISTS t1 | | 5 | 0.24476900 | CREATE TABLE T1 (id INT) | +----------+------------+--------------------------+ 5 rows in set (0.01 sec) MariaDB [test]> SHOW PROFILE; +----------------------+----------+ | Status | Duration | +----------------------+----------+ | starting | 0.000042 | | checking permissions | 0.000044 | | creating table | 0.244645 | | After create | 0.000013 | | query end | 0.000003 | | freeing items | 0.000016 | | logging slow query | 0.000003 | | cleaning up | 0.000003 | +----------------------+----------+ 8 rows in set (0.00 sec) MariaDB [test]> SHOW PROFILE FOR QUERY 4; +--------------------+----------+ | Status | Duration | +--------------------+----------+ | starting | 0.000126 | | query end | 0.000004 | | freeing items | 0.000012 | | logging slow query | 0.000003 | | cleaning up | 0.000002 | +--------------------+----------+ 5 rows in set (0.00 sec) MariaDB [test]> SHOW PROFILE CPU FOR QUERY 5; +----------------------+----------+----------+------------+ | Status | Duration | CPU_user | CPU_system | +----------------------+----------+----------+------------+ | starting | 0.000042 | 0.000000 | 0.000000 | | checking permissions | 0.000044 | 0.000000 | 0.000000 | | creating table | 0.244645 | 0.000000 | 0.000000 | | After create | 0.000013 | 0.000000 | 0.000000 | | query end | 0.000003 | 0.000000 | 0.000000 | | freeing items | 0.000016 | 0.000000 | 0.000000 | | logging slow query | 0.000003 | 0.000000 | 0.000000 | | cleaning up | 0.000003 | 0.000000 | 0.000000 | +----------------------+----------+----------+------------+ 8 rows in set (0.00 sec)