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. Utilizzate la LOG vista STL _ ALERT _ EVENT _ per identificare le opportunità per migliorare le prestazioni delle 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 _ contiene LOG solo le query eseguite sui cluster principali. Non contiene query eseguite su cluster con dimensionamento simultaneo. Per accedere alle query eseguite su cluster con scalabilità principale e simultanea, si consiglia di utilizzare la visualizzazione di monitoraggio. SYS SYS_QUERY_DETAIL I dati nella visualizzazione di SYS monitoraggio sono formattati per 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ù sezioni PIDs se viene eseguita su più slice. |
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 cui è iniziata 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 STL _ _ ALERT EVENT _ LOG per identificare potenziali problemi nelle query, quindi seguire le procedure descritte Ottimizzazione delle prestazioni delle query per ottimizzare la progettazione del database e riscrivere le query. STL_ _ ALERT EVENT _ LOG registra i seguenti avvisi:
-
Statistiche mancanti
Mancano le statistiche. Esegui ANALYZE i seguenti caricamenti di dati o aggiornamenti significativi e COPY usali STATUPDATE con le operazioni. 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 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 Distribuzione dei dati per l'ottimizzazione delle query.
-
Trasmissione estesa
Più di 1.000.000 di righe sono state trasmesse per un hash join. Per ulteriori informazioni, consulta Distribuzione dei dati per l'ottimizzazione delle query.
-
Esecuzione seriale
Nel piano di interrogazione è stato indicato uno stile di INNER ridistribuzione DIST ALL DS_ _ _, che impone l'esecuzione seriale perché l'intera tabella interna è stata ridistribuita su un singolo nodo. Per ulteriori informazioni, consulta Distribuzione dei dati per l'ottimizzazione delle query.
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)