This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

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 informazioni
  • BLOCK IO i numeri di blocchi di input e di operazioni di output
  • CONTEXT SWITCHES numeri di cambiamento di contesto volontari e involontari
  • CPU tempo di utilizzo della CPU da parte del sistema e dell'utente
  • IPC numeri di messaggi inviati e ricevuti
  • MEMORY non è attualmente implementato
  • PAGE FAULTS numeri di errori maggiori e minori delle pagine
  • SOURCE nomi di funzioni del codice sorgente, insieme al nome del file e al numero di riga nei quali si trovano le funzioni
  • SWAPS 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)
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.