STL_ALERT_EVENT_LOG - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

STL_ALERT_EVENT_LOG

Registra un avviso quando il query optimizer identifica delle condizioni che potrebbero indicare problemi di prestazioni. Utilizza la vista STL_ALERT_EVENT_LOG per identificare le possibilità di miglioramento delle performance della query.

Una query consiste in più segmenti e ogni segmento consiste in una o più fasi. Per ulteriori informazioni, consulta Elaborazione query.

STL_ALERT_EVENT_LOG è visibile a tutti gli utenti. Gli utenti con privilegi avanzati visualizzano tutte le righe; gli utenti regolari visualizzano solo i propri dati. Per ulteriori informazioni, consulta Visibilità dei dati nelle tabelle e nelle viste di sistema.

Nota

STL_ALERT_EVENT_LOG contiene solo le query eseguite sui cluster principali. Non contiene query eseguite su cluster con dimensionamento simultaneo. Per accedere alle query eseguite sui cluster principali e con dimensionamento simultaneo, ti consigliamo di utilizzare la vista di monitoraggio SYS SYS_QUERY_DETAIL. I dati nella vista di monitoraggio SYS sono formattati in modo da essere più facili da usare e comprendere.

Colonne di tabella

Nome colonna Tipo di dati Descrizione
userid integer ID dell'utente che ha generato la voce.
query integer ID query. La colonna di query può essere utilizzata per unire altre tabelle e visualizzazioni del sistema.
sezione integer Numero che identifica la sezione in cui è stata eseguita la query.
segment integer Numero identificativo del segmento di query.
step integer La fase di query eseguita.
pid integer ID di processo associato all'istruzione e alla sezione. La stessa query potrebbe avere più PID se viene eseguita su più sezioni.
xid bigint ID di transazione associato all'istruzione.
evento character(1024) Descrizione dell'evento di avviso.
solution character(1024) Soluzione consigliata.
event_time timestamp Ora in UTC in cui è stata avviata la query. Il tempo totale include l'inserimento in coda e l'esecuzione, con precisione a 6 cifre per le frazioni di secondo. Ad esempio: 2009-06-12 11:29:19.131358.

Note per l'utilizzo

È possibile utilizzare lo STL_ALERT_EVENT_LOG per identificare potenziali problemi nelle query, poi, per ottimizzare la progettazione del database e riscrivere le query, segui le procedure in Ottimizzazione delle prestazioni delle query. STL_ALERT_EVENT_LOG registra i seguenti avvisi:

  • Statistiche mancanti

    Mancano le statistiche. Esegui ANALYZE in seguito a caricamenti di dati o aggiornamenti significativi e utilizza STATUPDATE con le operazioni COPY. Per ulteriori informazioni, consulta Best practice di Amazon Redshift per la progettazione di query.

  • Loop nidificato

    Un loop nidificato è solitamente un prodotto cartesiano. Valuta la query per garantire che tutte le tabelle che partecipano siano unite in modo efficiente.

  • Filtro molto selettivo

    Il rapporto tra righe restituite e righe scansionate è minore di 0,05. Le righe sottoposte a scansione corrispondono al valore di rows_pre_user_filter e le righe restituite sono il valore delle righe nella vista di sistema STL_SCAN. Indica che la query sta eseguendo la scansione di un numero insolitamente grande di righe per determinare il set di risultati. Questo può essere dovuto a chiavi di ordinamento mancanti o non corrette. Per ulteriori informazioni, consulta Utilizzo delle chiavi di ordinamento.

  • Righe fantasma eccessive

    Una scansione ha ignorato un numero piuttosto grande di righe contrassegnate come cancellate ma non sottoposte a vacuum o righe che sono state inserite ma non eseguite. Per ulteriori informazioni, consulta Vacuum delle tabelle.

  • Distribuzione estesa

    Più di 1.000.000 di righe sono state redistribuite per un hash join o un'aggregazione. Per ulteriori informazioni, consulta Utilizzo degli stili di distribuzione dati.

  • Trasmissione estesa

    Più di 1.000.000 di righe sono state trasmesse per un hash join. Per ulteriori informazioni, consulta Utilizzo degli stili di distribuzione dati.

  • Esecuzione seriale

    Uno stile di redistribuzione DS_DIST_ALL_INNER è stato indicato nel piano di query, il che forza un'esecuzione seriale perché l'intera tabella interna è stata redistribuita in un solo nodo. Per ulteriori informazioni, consulta Utilizzo degli stili di distribuzione dati.

Query di esempio

La query seguente mostra eventi di avviso per quattro query.

SELECT query, substring(event,0,25) as event, substring(solution,0,25) as solution, trim(event_time) as event_time from stl_alert_event_log order by query; query | event | solution | event_time -------+-------------------------------+------------------------------+--------------------- 6567 | Missing query planner statist | Run the ANALYZE command | 2014-01-03 18:20:58 7450 | Scanned a large number of del | Run the VACUUM command to rec| 2014-01-03 21:19:31 8406 | Nested Loop Join in the query | Review the join predicates to| 2014-01-04 00:34:22 29512 | Very selective query filter:r | Review the choice of sort key| 2014-01-06 22:00:00 (4 rows)