2015-02-28 10 views
5

Recentemente mi è stata introdotta la nuova funzionalità di MySQL: performance_schema ed è fantastica. Specialmente quando è unito a MySQL Workbench Performance Reports. Trovo la sezione High Cost SQL Statements piuttosto utile e pratica. C'è solo uno svantaggio, la colonna SQL che contiene l'istruzione SQL eseguita viene troncata in casi lunghi.Prevenire che le istruzioni SQL vengano troncate dal workbench di MySQL nella sezione "Rapporti sul rendimento"

Credo che sia troncato da Workbench e non da Performance_Schema ma non ho prove concrete per dimostrarlo. Qualcuno sa come avere la versione completa di SQL?

+0

Quale tabella PS? –

+0

Non sono sicuro in quale tabella (o tabelle) i dati del 'Performance Reports' sono memorizzati. Ho guardato le tabelle e ce ne sono un paio con il campo 'SQL_TEXT' ed è di tipo' LONGTEXT' in tutti loro che è più che sufficiente per contenere qualsiasi istruzione (4G). Ecco perché credo che le dichiarazioni siano troncate da Workbench e non dal server MySQL stesso. – Mehran

risposta

7

Sono riuscito a capirlo da solo.

Le informazioni presentate in Dashboard di MySQL Workbench vengono estratte utilizzando una serie di viste definite nel database sys. Le viste menzionate vengono create in base alle tabelle trovate nel database performance_schema. Il campo responsabile della conservazione delle istruzioni SQL si trova nella vista sys.x$statement_analysis che la preleva dalla tabella performance_schema.events_statements_summary_by_digest a turno. Anche se questo campo è definito come LONGTEXT e può contenere un numero di caratteri pari a 4G, ma le istruzioni SQL vengono troncate quando vengono inserite.

La lunghezza massima dei caratteri che verranno inseriti in DIGEST_TEXT è controllata dalla configurazione max_digest_length. Il suo valore predefinito è e può essere aumentato fino a 1048576. Tuttavia, tieni presente che questa configurazione può essere impostata solo su versione MySQL superiore a 5.6.24 !!

+0

Ottimo! Questo rende perf i report perf! ho aggiunto thoses impostazioni per my.ini (valore di default x 10): 'max_digest_length = 10240 performance_schema_max_sql_text_length = 10240 performance_schema_max_digest_length = 10240' –

+1

Nota che a partire dal 5.6.26' performance_schema_max_digest_length' viene ora utilizzato al posto del 'max_digest_length'. Ottima risposta anche se quando ho deciso di capire come rendere leggibili queste stringhe di istruzioni, non mi aspettavo di trovare una risposta. Non sapevo nemmeno cosa fosse google. grazie a –

+0

Se qualcuno utilizza MySQL Workbench per visualizzare i dati dello schema delle prestazioni come sono io, sarà necessario andare in "Modifica> Preferenze> Esecuzione SQL" e impostare "Max. Campo Valore Lunghezza da visualizzare allo stesso valore massimo altrimenti le istruzioni verranno troncate (mostrando inizio e fine ma con ellissi nel mezzo) –

Problemi correlati