

 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](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à.

# Profiler di query
<a name="using-query-plan-profiler"></a>

In questo documento viene descritto Profiler di query, uno strumento grafico per l’analisi dei componenti e delle prestazioni di una query.

Profiler di query è una funzionalità di monitoraggio e risoluzione dei problemi delle query visualizzabile tramite la console Amazon Redshift. È utile per analizzare le prestazioni delle query. Il suo scopo principale è mostrare un ordine di esecuzione, un piano di esecuzione e le statistiche visive e grafiche su una query, semplificandone la comprensione e la risoluzione dei problemi. Profiler di query consente di analizzare i tipi di componenti di query seguenti:
+ **Query secondarie**: una query secondaria è una parte del lavoro di una query. Amazon Redshift può suddividere una query in più query secondarie se è più efficiente rispetto all’elaborazione come un’unica query di grandi dimensioni. Nel profiler puoi visualizzare le proprietà di ogni query secondaria. Una query secondaria è composta da flussi e sottocomponenti aggiuntivi.

  In genere tra i tipi di query secondarie mostrati da Profiler di query figurano i seguenti:
  + **Query su tabella temporanea**: il testo di questa query secondaria inizia con il comando `CREATE TEMP TABLE`. Questa query secondaria crea tabelle temporanee che possono essere elaborate da altre query secondarie.
  + **Query statistica**: Profiler di query aggiunge il commento seguente all’inizio di questa query secondaria per facilitarne l’identificazione:

    ```
    -- collect statistics of child query queryID
    ```

    Questa query secondaria raccoglie informazioni che il motore di query di Amazon Redshift utilizza per ottimizzare le prestazioni.
**Nota**  
Profiler di query mostra la query che l’utente fornisce come ultima query secondaria eseguita da Amazon Redshift.
+ **Flussi**: un flusso è una raccolta di segmenti raggruppati su sezioni di nodi di calcolo disponibili. Ogni query secondaria è costituita da uno o più segmenti. In Profiler di query puoi visualizzare le proprietà di ogni flusso, ad esempio il tempo di esecuzione. Se dai un’occhiata all’elenco dei flussi, è probabile che possa individuare rapidamente i colli di bottiglia in termini di prestazioni.
+ **Segmenti**: un segmento è una combinazione di diverse fasi che un singolo processo può eseguire. Un segmento è anche la più piccola unità di compilazione eseguibile da una sezione del nodo di calcolo. Una sezione è l'unità di elaborazione parallela in Amazon Redshift. I segmenti in un flusso eseguiti in parallelo. Profiler di query non mostra i segmenti graficamente, ma puoi accedere alle informazioni sui segmenti per una fase nel riquadro dei dettagli corrispondente.
+ **Fasi**: ogni segmento è costituito da una serie di fasi. Una fase è una parte del lavoro di una query. Le fasi possono includere *hashjoin*, ad esempio, oppure *scan*, che è la lettura dei record da una tabella.

Per ulteriori informazioni sui flussi, sui segmenti e sulle fasi, consulta [Pianificazione di query e flusso di lavoro di esecuzione](https://docs.aws.amazon.com/redshift/latest/dg/c-query-planning.html) nella *Guida per sviluppatori di database di Amazon Redshift*. 

Profiler di query mostra le informazioni restituite dalle viste `SYS_QUERY_HISTORY`, `SYS_QUERY_DETAIL`, `SYS_QUERY_EXPLAIN` e `SYS_CHILD_QUERY_TEXT`. Per ulteriori informazioni su queste viste, consulta [SYS\$1QUERY\$1HISTORY](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_HISTORY), [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html), [SYS\$1QUERY\$1EXPLAIN](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_EXPLAIN.html) e [SYS\$1CHILD\$1QUERY\$1TEXT](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CHILD_QUERY_TEXT.html) nella *Guida per sviluppatori di database di Amazon Redshift*.

Profiler di query visualizza solo le informazioni sulle query eseguite di recente sul database. Una query che viene completata utilizzando i dati di cache precompilati anziché essere eseguita sul database non ha un profilo di query se in precedenza non erano disponibili informazioni. Ciò è dovuto al fatto che Amazon Redshift non genera un piano di query a tal fine. 

## Prerequisiti per l’utilizzo di Profiler di query
<a name="using-query-plan-profiler-prereqs"></a>

Le viste di monitoraggio SYS sono progettate per facilitare l'uso e ridurre la complessità, fornendo una gamma completa di parametri per un monitoraggio e una risoluzione dei problemi efficaci. Le viste di monitoraggio SYS garantiscono inoltre la cronologia delle query degli ultimi sette giorni indipendentemente dalle dimensioni o dall’attività del cluster. Gli utenti hanno la visibilità solo sulle query che hanno eseguito, mentre gli utenti con privilegi avanzati hanno la visibilità sulle query di tutti gli utenti.

L’account o il ruolo dell’utente IAM necessita delle autorizzazioni per accedere alla sezione **Monitoraggio di database e delle query** della console. In questa sezione viene descritto come aggiungere le autorizzazioni a un account utente o un ruolo.

Utilizza la seguente policy per aggiungere le autorizzazioni minime al ruolo o all’account utente IAM. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift:DescribeClusters",
                "redshift-serverless:ListNamespaces",
                "redshift-serverless:ListWorkgroups",
                "redshift-data:ExecuteStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult"
            ],
            "Resource": [
                "arn:aws:redshift-serverless:us-east-1:111122223333:*",
                "arn:aws:redshift:us-east-1:111122223333:*"
            ]
        }
    ]
}
```

------

**Topics**
+ [Concessione delle autorizzazioni per il monitoraggio delle query a un ruolo](#using-query-plan-profiler-prereqs-role)
+ [Concessione delle autorizzazioni per il monitoraggio delle query a un utente](#using-query-plan-profiler-prereqs-user)
+ [Credenziali temporanee che utilizzano la tua identità IAM](#using-query-plan-profiler-prereqs-temp-iam)

### Concessione delle autorizzazioni per il monitoraggio delle query a un ruolo
<a name="using-query-plan-profiler-prereqs-role"></a>

Gli utenti con un ruolo che dispone dell’autorizzazione `sys:monitor` possono visualizzare tutte le query. Gli utenti con un ruolo che dispone dell’autorizzazione `sys:operator` possono annullare le query, analizzare la cronologia delle query ed eseguire operazioni di vacuum.

**Concessione dell'autorizzazione per il monitoraggio delle query a un ruolo**

1. Usa il comando seguente per fornire l'accesso al monitor di sistema, dove *role-name* è il nome del ruolo per il quale desideri fornire l'accesso.

   ```
   grant role sys:monitor to "IAMR:role-name";
   ```

1. (Facoltativo) Utilizzate il seguente comando per fornire l'accesso all'operatore di sistema, *role-name* dov'è il nome del ruolo per il quale desiderate fornire l'accesso.

   ```
   grant role sys:operator to "IAMR:role-name";
   ```

### Concessione delle autorizzazioni per il monitoraggio delle query a un utente
<a name="using-query-plan-profiler-prereqs-user"></a>

Gli utenti con l’autorizzazione `sys:monitor` possono visualizzare tutte le query. Gli utenti con l’autorizzazione `sys:operator` possono cancellare le query, analizzarne la cronologia ed eseguire operazioni di vacuum.

**Concessione dell'autorizzazione per il monitoraggio delle query a un utente**

1. Utilizzate il comando seguente per fornire l'accesso al monitor di sistema, *user-name* dov'è il nome dell'utente a cui desiderate fornire l'accesso.

   ```
   grant role sys:monitor to "IAMR:user-name";
   ```

1. (Facoltativo) Utilizzate il seguente comando per fornire l'accesso all'operatore di sistema, *-name* dov'è il nome dell'utente a cui desiderate fornire l'accesso.

   ```
   grant role sys:operator to "IAMR:user-name";
   ```

### Credenziali temporanee che utilizzano la tua identità IAM
<a name="using-query-plan-profiler-prereqs-temp-iam"></a>

Questa opzione è disponibile solo quando ci si connette a un cluster. Con questo metodo, Profiler di query mappa un nome utente all’identità IAM e genera una password temporanea per la connessione al database con l’identità IAM. Un utente che utilizza questo metodo per connettersi deve avere l'autorizzazione IAM per `redshift:GetClusterCredentialsWithIAM`. Per impedire agli utenti di utilizzare questo metodo, modifica il loro utente o ruolo IAM per negare questa autorizzazione. 

## Accesso a Profiler di query nella console Amazon Redshift per analizzare una query
<a name="using-query-plan-profiler-accessing"></a>

Puoi accedere a Profiler di query per Amazon Redshift serverless o Amazon Redshift con provisioning. Per ulteriori informazioni, consulta le sezioni seguenti:

**Topics**
+ [Accesso a Profiler di query nella console Amazon Redshift per Amazon Redshift serverless](#using-query-plan-profiler-accessing-serverless)
+ [Accesso a Profiler di query nella console Amazon Redshift per Amazon Redshift con provisioning](#using-query-plan-profiler-accessing-provisioned)

### Accesso a Profiler di query nella console Amazon Redshift per Amazon Redshift serverless
<a name="using-query-plan-profiler-accessing-serverless"></a>

Per accedere a Profiler di query per Amazon Redshift serverless, segui la procedura descritta:
+ Apri la console Amazon Redshift serverless.
+ Nel riquadro di navigazione, in **Monitoraggio**, scegli **Monitoraggio di database e delle query**.
+ Scegli un gruppo di lavoro.
+ Scegli **Monitoraggio di database e delle query**.
+ Scegli una query.
+ Scegli la scheda **Piano di query** nella pagina **Dettagli della query**.

Se è disponibile un piano di query, viene visualizzato un elenco di query secondarie. Scegli una query per visualizzarla in Profiler di query.

### Accesso a Profiler di query nella console Amazon Redshift per Amazon Redshift con provisioning
<a name="using-query-plan-profiler-accessing-provisioned"></a>

Per accedere a Query profiler per Amazon Redshift con provisioning, segui la procedura descritta:
+ Apri il Pannello di controllo dei cluster con provisioning Amazon Redshift.
+ Scegli un cluster.
+ Seleziona **Query monitoring** (Monitoraggio della query).
+ Connettersi a un database
+ Scegli **Monitoraggio di database e delle query**.
+ Scegli una query.

Se è disponibile un piano di query, viene visualizzato un elenco di query secondarie. Scegli una query per visualizzarla in Profiler di query.

## Interfaccia utente di Profiler di query
<a name="using-query-plan-profiler-ui"></a>

Profiler di query utilizza le seguenti pagine per visualizzare le informazioni sulla query:
+ **[Pagina Dettagli della query](#using-query-plan-profiler-ui-query-details)**: questa pagina visualizza le statistiche e le query secondarie relative alla query.
+ **[Pagina Query secondaria](#using-query-plan-profiler-ui-child-query)**: questa pagina mostra le statistiche, i flussi e una rappresentazione visiva del piano di esecuzione per una query secondaria. La console visualizza questa pagina quando scegli una query secondaria dall’elenco **Query secondarie** nella pagina **Monitoraggio di database e delle query**.

### Pagina Dettagli della query
<a name="using-query-plan-profiler-ui-query-details"></a>

![\[Query details interface showing execution time, data returned, and performance breakdown for query 4960.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/metrics_qp_query_details.png)


La pagina Dettagli della query contiene i componenti seguenti:
+ **Riquadro superiore**: il riquadro nella parte superiore della pagina mostra i dettagli della query, ad esempio lo stato e il tipo. Per informazioni sull’origine delle informazioni mostrate nel riquadro superiore, consulta [SYS\$1QUERY\$1HISTORY](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_HISTORY.html) nella *Guida per sviluppatori di database di Amazon Redshift*.
+ **Scheda SQL**: questa scheda del riquadro inferiore mostra il testo SQL per la query originale dell’utente.
+ **Scheda del piano di query**: questa scheda del riquadro inferiore mostra un elenco delle query secondarie utilizzate da Amazon Redshift per preparare i dati e le statistiche per la query dell’utente. Per impostazione predefinita, l’elenco **Query secondarie** mostra le informazioni e le statistiche aggregate relative a ciascuna query secondaria. Per informazioni sull’origine delle informazioni mostrate in questa pagina, consulta [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html) nella *Guida per sviluppatori di database di Amazon Redshift*.

  Puoi aggiungere o rimuovere colonne dall’elenco **Query secondarie** utilizzando il menu Preferenze.
+ **Metriche correlate**: questa scheda del pannello inferiore mostra le seguenti CloudWatch metriche per la query: 
  + **Capacità RPU utilizzata** (per gruppi di lavoro serverless): la capacità di calcolo utilizzata dalla query, misurata in Redshift Processing Units (). RPUs Per ulteriori informazioni, consulta [Capacità di calcolo per Amazon Redshift Serverless](serverless-capacity.md).
  + **Stato di integrità del cluster**, **Utilizzo della CPU**, **Capacità di storage utilizzata** (per i cluster con provisioning): lo stato e le risorse di sistema utilizzate dalla query.
  + **Connessioni di database attive**: la metrica `DatabaseConnections` per la query. 

  Per ulteriori informazioni sulle metriche, consulta. CloudWatch [Dati relativi alle prestazioni in Amazon Redshift](metrics-listing.md)

### Pagina Query secondaria
<a name="using-query-plan-profiler-ui-child-query"></a>

![\[Query execution plan showing stages from Distribute to Aggregate with execution times.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/metrics_qp_child_query_plan.png)


La pagina Query secondaria contiene i componenti seguenti:
+ **Menu a discesa Query secondarie**: questo controllo mostra il nome della sequenza e il tempo di esecuzione per ogni query secondaria. Puoi passare ad altre query secondarie selezionandole in questo controllo.
+ **Pannello laterale**: questo pannello contiene schede per la visualizzazione dei flussi di query secondarie e del testo delle query secondarie. 
+ **Scheda Flussi delle query secondarie**: questa scheda del pannello superiore mostra quanto segue:
  + **Flussi**: questo riquadro mostra l’elenco dei flussi nella query secondaria. Questo riquadro mostra le informazioni e i dati aggregati sui flussi utilizzati da Amazon Redshift per ottimizzare la query. Per informazioni sui dettagli in questo riquadro, consulta [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html) nella *Guida per sviluppatori di database di Amazon Redshift*.

    Puoi aggiungere o rimuovere colonne dal riquadro **Flussi** utilizzando il menu Preferenze. Puoi accedere al menu Preferenze utilizzando l’icona a forma di ingranaggio nel riquadro **Flussi**. 
  + **Riquadro Query secondaria**: una rappresentazione grafica delle fasi della query secondaria. Per informazioni sul riquadro **Query secondaria**, consulta [Riquadro Query secondaria](#using-query-plan-profiler-child-query-pane) di seguito.
+ **Scheda Testo della query secondaria**: questa scheda del pannello superiore mostra il codice SQL per la query secondaria.
+ **Riquadro Dettagli della query secondaria**: questo riquadro nel pannello di destra mostra i dettagli della query secondaria. Per informazioni sui dettagli in questo riquadro, consulta [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html) nella *Guida per sviluppatori di database di Amazon Redshift*.
+ **Riquadro Dettagli del flusso**: quando scegli un flusso nel riquadro **Flussi**, il riquadro **Dettagli del flusso** mostra le informazioni sul flusso. Per informazioni sui dettagli in questo pannello, consulta [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html) nella *Guida per sviluppatori di database di Amazon Redshift*.
+ **Riquadro Dettagli della fase**: quando scegli una fase nel riquadro **Flussi** o il grafico in **Piano della query secondaria**, il riquadro **Dettagli della fase** mostra le informazioni sulla fase. Per informazioni sui dettagli in questo riquadro, consulta [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html) nella *Guida per sviluppatori di database di Amazon Redshift*.

## Riquadro Query secondaria
<a name="using-query-plan-profiler-child-query-pane"></a>

Profiler di query visualizza la query secondaria nel riquadro **Query secondaria** come rappresentazione grafica delle fasi nella query secondaria selezionata. 

Il riquadro **Query secondaria** mostra l’ordine di esecuzione e le relazioni tra le fasi. Ad esempio, se una fase effettua il join dell’output di altre due fasi, il riquadro **Query secondaria** mostra il passaggio come un nodo ad albero con due nodi che lo alimentano:

![\[Tree diagram showing Hashjoin step with Scan + Item and Hash steps as child nodes.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/metrics_qp_hashjoin.png)


Per impostazione predefinita, il riquadro **Query secondaria** non mostra i flussi che contengono le fasi. Per mostrare i flussi utilizzati da Amazon Redshift per partizionare logicamente le fasi della query secondaria, scegli **Visualizza i flussi**. Quando scegli **Visualizza i flussi**, il riquadro **Query secondaria** mostra le fasi contenute dai flussi della query.

Il riquadro **Query secondaria** non mostra le informazioni sui segmenti. Per visualizzare il segmento relativo a una fase, scegli la fase. Il riquadro **Dettagli della fase** mostra quindi il segmento relativo alla fase.

### Navigazione nel riquadro Query secondaria
<a name="using-query-plan-profiler-child-query-pane-navigation"></a>

Nel riquadro **Query secondaria** puoi scegliere le fasi per visualizzare le relative informazioni dettagliate. Inoltre puoi eseguire la panoramica e lo zoom dello spazio di lavoro per visualizzare meglio le fasi nel piano di query.

Puoi scegliere i nodi, eseguire la panoramica e lo zoom in **Piano della query secondaria** utilizzando i seguenti metodi:
+ **Utilizzo del mouse**: puoi scegliere i nodi, fare clic e trascinare lo spazio di lavoro per eseguire la panoramica, tenere premuto **Ctrl** (Windows) o **CMD** (Mac) e premere la rotellina del mouse per effettuare lo zoom. La scelta di un nodo fa sì che lo spazio di lavoro esegua lo zoom e la panoramica per evidenziarlo. Se scegli un flusso nello spazio di lavoro, tale flusso viene evidenziato nell’elenco **Flussi**. Se scegli un passaggio nello spazio di lavoro, il riquadro **Dettagli della fase** mostra le informazioni su tale fase.
+ **Utilizzo dei controlli di zoom e adattamento nella parte superiore sinistra dello spazio di lavoro**: questi controlli consentono di eseguire lo zoom per ingrandire, rimpicciolire e adattare l’intero spazio di lavoro e accedere alla modalità a schermo intero. Quando esegui lo zoom per adattare l’intero piano di query, lo spazio di lavoro centra il piano sia orizzontalmente che verticalmente. 
+ **Utilizzo della minimappa nella parte inferiore destra dello spazio di lavoro**: puoi eseguire la panoramica o lo zoom dello spazio di lavoro usando il controllo della minimappa nell’angolo inferiore sinistro dello spazio di lavoro.
+ **Scelta di un flusso nel riquadro **Flussi****: se scegli un flusso nel riquadro **Flussi**, viene eseguita la panoramica dello spazio di lavoro che viene ingrandito per mostrare il flusso selezionato e le relative informazioni nel riquadro **Dettagli del flusso**.
+ **Scelta di una fase nel riquadro **Dettagli del flusso****: se scegli una fase nel riquadro **Dettagli del flusso**, viene eseguita la panoramica dello spazio di lavoro che viene ingrandito per mostrare la fase selezionata e le relative informazioni nel riquadro **Dettagli della fase**.

**Nota**  
Quando scegli una fase, nello spazio di lavoro o in un altro riquadro, lo spazio di lavoro tenta di eseguire lo zoom e la panoramica in modo da visualizzare al meglio la fase selezionata.   
Quando scegli un flusso o una fase, nello spazio di lavoro o in un altro riquadro, lo spazio di lavoro esegue lo zoom e la panoramica sul flusso o sulla fase solo se hai selezionato **Panoramica e zoom** nel controllo in alto a destra dello spazio di lavoro. Puoi limitare questo comportamento alla panoramica e allo zoom, alla sola panoramica o a nessun movimento scegliendo l’impostazione appropriata nel menu a discesa.  

![\[Dropdown menu showing pan and zoom options for workspace navigation control.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/metrics_qp_pan_zoom.png)


## Risoluzione dei problemi relativi alle query con Profiler di query
<a name="using-query-plan-profiler-troubleshooting"></a>

Se stai risolvendo un problema relativo a una query, puoi scegliere una query secondaria per determinare quale flusso utilizza il valore più alto di **Percentuale del tempo totale di interrogazione**. È un modo rapido per determinare quale parte della query deve essere analizzata ulteriormente. 

Dopo avere individuato la query secondaria che richiede più tempo, consulta la relativa procedura per vedere quale join o scansione potrebbe causare un rallentamento delle prestazioni.