

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

# Interrogazione delle tabelle di sistema
<a name="discovering-metadata-system-tables"></a>

Se né l'API dei metadati del driver né `SHOW` i comandi soddisfano le tue esigenze, puoi interrogare le tabelle del catalogo PostgreSQL (), lo schema informativo `pg_*` () o le viste di sistema di Amazon Redshift`information_schema`, ad esempio direttamente. `SVV_TABLE_INFO`

Questo approccio è utile per attività di esplorazione, debug o amministrative ad hoc eseguite da query SQL interattive, ad esempio in Amazon Redshift query editor v2 o. `psql` Tuttavia, le strutture del catalogo di sistema possono cambiare tra le versioni di Amazon Redshift. Non è consigliabile affidarsi a query dirette su tabelle di sistema come interfaccia di metadati per le integrazioni di applicazioni di produzione.

Quando esegui query nelle tabelle di sistema, segui queste pratiche:
+ **Specificate il database, lo schema e la tabella**. Per prestazioni ottimali, includi il nome del database, il nome dello schema e il nome della tabella nei filtri di query. Il restringimento dell'ambito riduce la quantità di metadati di cui Amazon Redshift ha bisogno per scansionare e restituire.
+ **Usa filtri di uguaglianza** o LIKE. Usa l'uguaglianza (`=`) o `LIKE` i predicati nella `WHERE` clausola per restringere i risultati. Evita le query non filtrate relative a visualizzazioni di catalogo di grandi dimensioni. Possono essere lente su cluster con molti oggetti.
+ **Evita le funzioni nei predicati dei filtri**. Non utilizzate funzioni come `LOWER()` la concatenazione di stringhe nella `WHERE` clausola quando filtrate le query delle tabelle di sistema. Questi impediscono una ricerca efficiente dei metadati e possono ridurre in modo significativo le prestazioni delle query.

## Anti-pattern Esempio vs. Domande consigliate
<a name="r_QUERY_LIST-examples"></a>

```
-- Avoid:
SELECT * FROM svv_all_columns;

-- Recommended:
SELECT * FROM svv_all_columns WHERE database_name = 'dev' and schema_name = 'public' AND table_name = 'sales';
```

```
-- Avoid:
SELECT * FROM svv_all_columns WHERE LOWER(schema_name) = 'public';

-- Recommended:
SELECT * FROM svv_all_columns WHERE schema_name = 'public' AND table_name LIKE 'sales%';
```

```
-- Avoid:
SELECT * FROM svv_all_columns WHERE database_name || '.' || schema_name || '.' || table_name = 'dev.public.sales';

-- Recommended:
SELECT * FROM svv_all_columns WHERE database_name = 'dev' and schema_name = 'public' AND table_name = 'sales';
```

```
-- Avoid:
SELECT * FROM svv_all_columns WHERE CONCAT(database_name, '.', schema_name) = 'dev.public';

-- Recommended:
SELECT * FROM svv_all_columns WHERE database_name = 'dev' and schema_name = 'public';
```