STL_SCAN - 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_SCAN

Analizza le fasi di scansione di tabella per le query. Il numero di fase per le righe in questa tabella è sempre 0 perché una scansione è la prima fase in un segmento.

STL_SCAN è 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_SCAN 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.
starttime 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.
endtime timestamp L'orario in UTC in cui è terminata 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.
tasknum integer Il numero del processo di attività di query assegnato per eseguire la fase.
righe bigint Numero totale di righe elaborate.
byte bigint Dimensione, in byte, di tutte le righe di output della fase.
fetches bigint Queste informazioni sono solo per uso interno.
tipo integer ID del tipo di scansione. Per un elenco di valori validi, consultare la tabella seguente.
tbl integer ID tabella.
is_rrscan character(1) Se true (t), indica che in questa fase è stata utilizzata la scansione a intervallo limitato.
is_delayed_scan character(1) Queste informazioni sono solo per uso interno.
rows_pre_filter bigint Per le scansioni di tabelle permanenti, il numero totale di righe emesse prima di aver applicato filtri alle righe contrassegnate per l'eliminazione (righe fantasma) e prima dell'applicazione di filtri di query definiti dall'utente.
rows_pre_user_filter bigint Per le scansioni di tabelle permanenti, il numero di righe elaborate dopo aver applicato filtri alle righe contrassegnate per l'eliminazione (righe fantasma) ma prima dell'applicazione di filtri di query definiti dall'utente.
perm_table_name character(136) Per le scansioni di tabelle permanenti, il nome della tabella su cui è eseguita la scansione.
is_rlf_scan character(1) Se true (t), indica che nella fase è stata utilizzata l'applicazione di filtri a livello di riga.
is_rlf_scan_reason integer Queste informazioni sono solo per uso interno.
num_em_blocks integer Queste informazioni sono solo per uso interno.
checksum bigint Queste informazioni sono solo per uso interno.
runtime_filtering character(1) Se true (t), indica che vengono applicati filtri di runtime.
scan_region integer Queste informazioni sono solo per uso interno.
num_sortkey_as_predicate integer Queste informazioni sono solo per uso interno.
row_fetcher_state integer Queste informazioni sono solo per uso interno.
consumed_scan_ranges bigint Queste informazioni sono solo per uso interno.
work_stealing_reason bigint Queste informazioni sono solo per uso interno.
is_vectorized_scan character(1) Queste informazioni sono solo per uso interno.
is_vectorized_scan_reason integer Queste informazioni sono solo per uso interno.
row_fetcher_reason bigint Queste informazioni sono solo per uso interno.
topology_signature bigint Queste informazioni sono solo per uso interno.
use_tpm_partition character(1) Queste informazioni sono solo per uso interno.
is_rrscan_expr character(1) Queste informazioni sono solo per uso interno.
scanned_mega_value character(1) Queste informazioni sono solo per uso interno. Queste informazioni mostrano se la fase di scansione specificata ha scansionato un valore elevato. Un valore elevato verrà archiviato in più blocchi. La dimensione del blocco è 1 MB per impostazione predefinita, un valore elevato è superiore a 1 MB in un'impostazione predefinita.

Tipi di scansione

ID di tipo Descrizione
1 Dati dalla rete.
2 Tabelle d'utente permanenti nella memoria condivisa compressa.
3 Tabelle transitorie in linea.
21 Carica file da Amazon S3.
22 Carica tabelle da Amazon DynamoDB.
23 Carica i dati da una connessione SSH remota.
24 Carica i dati da un cluster remoto (regione ordinata). È utilizzato per il ridimensionamento.
25 Carica i dati da un cluster remoto (regione non ordinata). È utilizzato per il ridimensionamento.
28 Legge i dati da una vista di serie temporali con UNION ALL su più tabelle.
29 Legge i dati da tabelle esterne Amazon S3.
30 Legge le informazioni sulle partizioni di una tabella esterna Amazon S3.
33 Legge i dati da una tabella Postgres remota.
36 Legge i dati da una tabella MySQL remota.
37 Legge i dati da un flusso Kinesis remoto.

Note per l'utilizzo

Idealmente rows dovrebbe essere relativamente vicino a rows_pre_filter. Una grande differenza tra rows e rows_pre_filter indica che il motore di esecuzione sta eseguendo la scansione delle righe che verranno eliminate, il che non è efficiente. La differenza tra rows_pre_filter e rows_pre_user_filter è il numero di righe fantasma nella scansione. Esegui un VACUUM per rimuovere le righe contrassegnate per l'eliminazione. La differenza tra rows e rows_pre_user_filter è il numero di righe a cui la query ha applicato un filtro. Se il filtro dell'utente elimina molte righe, rivedi la tua scelta della colonna di ordinamento o, se ciò è dovuto a una grande regione non ordinata, esegui un vacuum.

Query di esempio

Il seguente esempio mostra che rows_pre_filter è maggiore di rows_pre_user_filter perché la tabella ha eliminato righe sulle quali non è stato eseguito un vacuum (righe fantasma).

SELECT query, slice, segment,step,rows, rows_pre_filter, rows_pre_user_filter from stl_scan where query = pg_last_query_id(); query | slice | segment | step | rows | rows_pre_filter | rows_pre_user_filter -------+--------+---------+------+-------+-----------------+---------------------- 42915 | 0 | 0 | 0 | 43159 | 86318 | 43159 42915 | 0 | 1 | 0 | 1 | 0 | 0 42915 | 1 | 0 | 0 | 43091 | 86182 | 43091 42915 | 1 | 1 | 0 | 1 | 0 | 0 42915 | 2 | 0 | 0 | 42778 | 85556 | 42778 42915 | 2 | 1 | 0 | 1 | 0 | 0 42915 | 3 | 0 | 0 | 43428 | 86856 | 43428 42915 | 3 | 1 | 0 | 1 | 0 | 0 42915 | 10000 | 2 | 0 | 4 | 0 | 0 (9 rows)