Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog
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à.
SYS_QUERY_DETAIL
Utilizza SYS_QUERY_DETAIL per visualizzare i dettagli delle query a vari livelli di metrica, con ogni riga che rappresenta i dettagli di una particolare query WLM a un determinato livello di metrica. Questa vista contiene molti tipi di query come DDL, DML e comandi di utilità (ad esempio, copia e scarica). Alcune colonne potrebbero non essere rilevanti a seconda del tipo di query. Ad esempio, external_scanned_bytes non è rilevante per le tabelle interne.
SYS_QUERY_DETAIL è 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
Per verificare se il commit di una transazione contenente la query eseguita è riuscito, devi effettuare il join tra le tabelle di sistema e la tabella sys_transaction_history. Esempio:
SELECT th.transaction_id, qd.query_id, th.status AS transaction_status FROM sys_query_detail qd LEFT JOIN sys_query_history qh ON qd.query_id = qh.query_id LEFT JOIN sys_transaction_history th on qh.transaction_id = th.transaction_id;
Colonne di tabella
| Nome della colonna | Tipo di dati | Description |
|---|---|---|
| user_id | intero | Identificatore dell'utente che ha inviato la query. |
| query_id | bigint | L'identificativo della query. |
| child_query_sequence | intero | La sequenza della query utente riscritta, che inizia con 1. |
| stream_id | intero | L'identificatore di flusso del flusso di query. |
| segment_id | intero | L'identificatore di segmento del segmento di esecuzione della query. |
| step_id | intero | L'identificatore di passaggio in un segmento. |
| step_name | testo | Il nome della fase in un segmento. I valori possibili sono aggregate, broadcast, delete, distribute, hash, hashjoin, insert, limit, merge, nestloop, parse, return, save, scan, sort, sortlimit, unique e window. |
| table_id | intero | L'identificatore della tabella per le scansioni permanenti della tabella. |
| table_name | character(136) | Nome della tabella del passaggio in corso. |
| is_rrscan | carattere | Un valore che indica se è una fase di scansione. True (t) indica che è stata utilizzata la scansione a intervallo limitato. |
| start_time | timestamp | Il momento in cui è iniziata la fase di query. Questo campo viene registrato a livello di segmento, indipendentemente dal valore nella colonna metrics_level. |
| end_time | timestamp | Il momento in cui la fase di query è stata completata. Questo campo viene registrato a livello di segmento, indipendentemente dal valore nella colonna metrics_level. |
| durata | bigint | La quantità di tempo (microsecondi) dedicato alla fase. Questo campo viene registrato a livello di segmento, indipendentemente dal valore nella colonna metrics_level. |
| avviso | testo | La descrizione dell'evento di avviso. |
| input_bytes | bigint | I byte di input per il passaggio corrente. |
| input_rows | bigint | Le righe di input per il passaggio corrente. |
| output_bytes | bigint | I byte di output per il passaggio corrente. |
| output_rows | bigint | Le righe di output per il passaggio corrente. |
| blocks_read | bigint | Il numero di blocchi letti nella fase. |
| blocks_write | bigint | Il numero di blocchi scritti nella fase. |
| local_read_IO | bigint | Il numero di blocchi letti dalla cache del disco locale. |
| remote_read_IO | bigint | Il numero di blocchi letti da remoto. |
| origine | testo | Il tipo di oggetto di database scansionato. Questa colonna ha un valore solo quando il valore step_name della riga è scan. |
| data_skewness | intero | L'asimmetria della distribuzione delle righe di output tra tutte le fasi. È un numero compreso tra 0% e 100%. Più alto è il numero, più è sbilanciata la distribuzione. |
| time_skewness | intero | L'asimmetria del tempo di esecuzione tra tutte le fasi. È un numero compreso tra 0% e 100%. Più alto è il numero, più è sbilanciata la distribuzione. |
| is_active | carattere | Lo stato della query a livello di fase. I valori possibili sono "t" che indica che la fase è in esecuzione al momento o "f" che indica che la fase è completata. |
| spilled_block_local_disk | bigint | Il numero di blocchi riversati sul disco locale. |
| spilled_block_remote_disk | bigint | Il numero di blocchi riversati su Amazon Simple Storage Service. |
| step_attribute | character(64) | Contiene informazioni sulla fase associata. Valori possibili per le fasi di scansione: multi-dimensional. |
| metrics_level | character(64) | Il livello di metriche della query. I valori possibili sono i seguenti:
|
| plan_parent_id | intero | L’identificatore del nodo principale del nodo del piano. Un nodo principale può avere più nodi secondari. Ad esempio, un merge join è il nodo principale delle scansioni per le tabelle sottoposte a join. |
| plan_node_id | intero | L’identificatore del nodo di un piano che corrisponde a una o più fasi nella query. |
Note per l’utilizzo
SYS_QUERY_DETAIL può contenere metriche a livello di fase, flusso, segmento e query secondaria. Oltre a fare riferimento alla colonna metrics_level, puoi determinare il livello di metriche mostrato in una data riga facendo riferimento ai campi step_id, segment_id e stream_id in base alla tabella seguente.
| Livello di metriche | valore stream_id | valore segment_id | valore step_id |
|---|---|---|---|
| query secondaria | -1 | -1 | -1 |
| stream | Un valore di incremento valido | -1 | -1 |
| segment | Un valore di incremento valido | Un valore di incremento valido | -1 |
| fase | Un valore di incremento valido | Un valore di incremento valido | Un valore di incremento valido |
Query di esempio
L'esempio seguente restituisce l'output di SYS_QUERY_DETAIL.
La seguente query mostra i dettagli dei metadati della query a livello di fase, inclusi nome fase, input_bytes, output_bytes, input_rows, output_rows.
SELECT query_id, child_query_sequence, stream_id, segment_id, step_id, trim(step_name) AS step_name, duration, input_bytes, output_bytes, input_rows, output_rows FROM sys_query_detail WHERE query_id IN (193929) ORDER BY query_id, stream_id, segment_id, step_id DESC;
Output di esempio.
query_id | child_query_sequence | stream_id | segment_id | step_id | step_name | duration | input_bytes | output_bytes | input_rows | output_rows ----------+----------------------+-----------+------------+---------+------------+-----------------+-------------+--------------+------------+------------- 193929 | 2 | 0 | 0 | 3 | hash | 37144 | 0 | 9350272 | 0 | 292196 193929 | 5 | 0 | 0 | 3 | hash | 9492 | 0 | 23360 | 0 | 1460 193929 | 1 | 0 | 0 | 3 | hash | 46809 | 0 | 9350272 | 0 | 292196 193929 | 4 | 0 | 0 | 2 | return | 7685 | 0 | 896 | 0 | 112 193929 | 1 | 0 | 0 | 2 | project | 46809 | 0 | 0 | 0 | 292196 193929 | 2 | 0 | 0 | 2 | project | 37144 | 0 | 0 | 0 | 292196 193929 | 5 | 0 | 0 | 2 | project | 9492 | 0 | 0 | 0 | 1460 193929 | 3 | 0 | 0 | 2 | return | 11033 | 0 | 14336 | 0 | 112 193929 | 2 | 0 | 0 | 1 | project | 37144 | 0 | 0 | 0 | 292196 193929 | 1 | 0 | 0 | 1 | project | 46809 | 0 | 0 | 0 | 292196 193929 | 5 | 0 | 0 | 1 | project | 9492 | 0 | 0 | 0 | 1460 193929 | 3 | 0 | 0 | 1 | aggregate | 11033 | 0 | 201488 | 0 | 14 193929 | 4 | 0 | 0 | 1 | aggregate | 7685 | 0 | 28784 | 0 | 14 193929 | 5 | 0 | 0 | 0 | scan | 9492 | 0 | 23360 | 292196 | 1460 193929 | 4 | 0 | 0 | 0 | scan | 7685 | 0 | 1344 | 112 | 112 193929 | 2 | 0 | 0 | 0 | scan | 37144 | 0 | 7304900 | 292196 | 292196 193929 | 3 | 0 | 0 | 0 | scan | 11033 | 0 | 13440 | 112 | 112 193929 | 1 | 0 | 0 | 0 | scan | 46809 | 0 | 7304900 | 292196 | 292196 193929 | 5 | 0 | 0 | -1 | | 9492 | 12288 | 0 | 0 | 0 193929 | 1 | 0 | 0 | -1 | | 46809 | 16384 | 0 | 0 | 0 193929 | 2 | 0 | 0 | -1 | | 37144 | 16384 | 0 | 0 | 0 193929 | 4 | 0 | 0 | -1 | | 7685 | 28672 | 0 | 0 | 0 193929 | 3 | 0 | 0 | -1 | | 11033 | 114688 | 0 | 0 | 0
Per visualizzare le tabelle del database nell'ordine dalla più utilizzata a quella meno utilizzata, utilizza l'esempio seguente. Sostituisci sample_data_dev con il tuo database. Tieni presente che questa query calcolerà le query a partire dalla creazione del cluster, ma i dati della vista di sistema non vengono salvati quando nel data warehouse manca spazio.
SELECT table_name, COUNT (DISTINCT query_id) FROM SYS_QUERY_DETAIL WHERE table_name LIKE 'sample_data_dev%' GROUP BY table_name ORDER BY COUNT(*) DESC;+---------------------------------+-------+ | table_name | count | +---------------------------------+-------+ | sample_data_dev.tickit.venue | 4 | | sample_data_dev.myunload1.venue | 3 | | sample_data_dev.tickit.listing | 1 | | sample_data_dev.tickit.category | 1 | | sample_data_dev.tickit.users | 1 | | sample_data_dev.tickit.date | 1 | | sample_data_dev.tickit.sales | 1 | | sample_data_dev.tickit.event | 1 | +---------------------------------+-------+
Nell’esempio seguente mostra i vari livelli di metriche per una singola query WLM.
SELECT query_id, child_query_sequence, stream_id, segment_id, step_id, step_name, start_time, end_time, metrics_level FROM sys_query_detail WHERE query_id = 1553 AND step_id = -1 ORDER BY stream_id, segment_id, step_id; query_id | child_query_sequence | stream_id | segment_id | step_id | step_name | start_time | end_time | metrics_level ----------+----------------------+-----------+------------+---------+-----------+----------------------------+----------------------------+--------------- 1553 | 1 | -1 | -1 | -1 | | 2024-10-17 02:28:49.814721 | 2024-10-17 02:28:49.847838 | child query 1553 | 1 | 0 | -1 | -1 | | 2024-10-17 02:28:49.814721 | 2024-10-17 02:28:49.835609 | stream 1553 | 1 | 0 | 0 | -1 | | 2024-10-17 02:28:49.824677 | 2024-10-17 02:28:49.830372 | segment 1553 | 1 | 1 | -1 | -1 | | 2024-10-17 02:28:49.835624 | 2024-10-17 02:28:49.845773 | stream 1553 | 1 | 1 | 1 | -1 | | 2024-10-17 02:28:49.84088 | 2024-10-17 02:28:49.842388 | segment 1553 | 1 | 1 | 2 | -1 | | 2024-10-17 02:28:49.835926 | 2024-10-17 02:28:49.844396 | segment 1553 | 1 | 2 | -1 | -1 | | 2024-10-17 02:28:49.846949 | 2024-10-17 02:28:49.847838 | stream 1553 | 1 | 2 | 3 | -1 | | 2024-10-17 02:28:49.847013 | 2024-10-17 02:28:49.847485 | segment (8 rows)