

 Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dalla Patch 198. Le UDF Python esistenti continueranno a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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
<a name="SYS_QUERY_DETAIL"></a>

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](cm_chap_system-tables.md#c_visibility-of-data).

**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
<a name="SYS_QUERY_DETAIL-table-columns"></a>


| 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:[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/redshift/latest/dg/SYS_QUERY_DETAIL.html) | 
| 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
<a name="SYS_QUERY_DETAIL-usage-notes"></a>

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
<a name="SYS_QUERY_DETAIL-sample-queries"></a>

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)
```