Vacuum delle tabelle - 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à.

Vacuum delle tabelle

Amazon Redshift può ordinare ed eseguire automaticamente un'VACUUMDELETEoperazione sulle tabelle in background. Per ripulire le tabelle dopo un caricamento o una serie di aggiornamenti incrementali, è anche possibile eseguire il comando VACUUM, sia sull'intero database, sia su singole tabelle.

Nota

Solo gli utenti con le autorizzazioni necessarie possono efficacemente eseguire l'operazione vacuum su una tabella. Se VACUUM viene eseguita senza i permessi necessari per la tabella, l'operazione viene completata correttamente ma non ha alcun effetto. Per un elenco dei permessi di tabella validi per un'esecuzione VACUUM efficace, vedere. VACUUM

Per questo motivo, raccomandiamo di eseguire il VACUUM sulle specifiche tabelle secondo necessità. Consigliamo questo approccio anche perché l'operazione VACUUM dell'intero database è potenzialmente un'operazione costosa.

Ordinamento automatico delle tabelle

Amazon Redshift ordina automaticamente i dati in background per mantenerli ordinati nella tabella rispetto alla chiave di ordinamento. Amazon Redshift tiene traccia delle query di scansione per determinare quali sezioni della tabella trarranno vantaggio dall'ordinamento.

In base al carico sul sistema, Amazon Redshift avvia automaticamente l'ordinamento. Questo ordinamento automatico riduce la necessità di eseguire il VACUUM comando per mantenere i dati nell'ordine delle chiavi di ordinamento. Se hai bisogno che i dati siano completamente ordinati secondo l'ordine della chiave di ordinamento, ad esempio dopo un caricamento di dati di grandi dimensioni, puoi comunque eseguire il VACUUM comando manualmente. Per determinare se la tabella trarrà vantaggio dall'esecuzione VACUUMSORT, monitora la vacuum_sort_benefit colonna inSVV_TABLE_INFO.

Amazon Redshift tiene traccia delle query di scansione che utilizzano la chiave di ordinamento su ogni tabella. Amazon Redshift stima la percentuale massima di miglioramento nella scansione e nel filtraggio dei dati per ciascuna tabella (se la tabella è stata completamente ordinata). Tale stima è visibile nella colonna vacuum_sort_benefit in SVV_TABLE_INFO. È possibile utilizzare questa colonna, insieme alla unsorted colonna, per determinare quando le query possono trarre vantaggio dall'esecuzione manuale VACUUM SORT su una tabella. La colonna unsorted riflette l'ordinamento fisico di una tabella. La vacuum_sort_benefit colonna specifica l'impatto dell'ordinamento di una tabella mediante esecuzione manuale. VACUUM SORT

Considerare, ad esempio, lo schema seguente:

select "table", unsorted,vacuum_sort_benefit from svv_table_info order by 1;
table | unsorted | vacuum_sort_benefit -------+----------+--------------------- sales | 85.71 | 5.00 event | 45.24 | 67.00

Per la tabella "vendite", sebbene la tabella sia fisicamente non ordinata per circa l'86%, l'impatto sulle prestazioni della query dovuto al fatto che la tabella non sia ordinata per l'86% è solo del 5%. Ciò potrebbe essere dovuto al fatto le query accedono solo a una piccola parte della tabella, o che pochissime query hanno dovuto accedere alla tabella. Per la tabella "evento", la tabella è fisicamente non ordinata per circa il 45%. Ma l'impatto sulle prestazioni della query del 67% indica che le query accedono a una porzione maggiore della tabella o che il numero di query che accedono alla tabella è elevato. La tabella «evento» può potenzialmente trarre vantaggio dall'esecuzione. VACUUM SORT

Eliminazione vacuum automatica

Quando si esegue un'eliminazione, le righe vengono contrassegnate per l'eliminazione, ma non rimosse. Amazon Redshift esegue automaticamente un'VACUUMDELETEoperazione in background in base al numero di righe eliminate nelle tabelle del database. Amazon Redshift ne pianifica l'VACUUMDELETEesecuzione durante i periodi di carico ridotto e sospende l'operazione durante i periodi di carico elevato.

VACUUMfrequenza

È opportuno eseguire l'operazione vacuum quando necessario per mantenere prestazioni di query coerenti. Considerate questi fattori per determinare la frequenza con cui eseguire il VACUUM comando:

  • Esegui VACUUM durante i periodi di tempo in cui prevedi un'attività minima sul cluster, ad esempio la sera o durante le finestre di amministrazione del database designate.

  • Esegui VACUUM comandi al di fuori delle finestre di manutenzione. Per ulteriori informazioni, consulta Pianificazione per le finestre di manutenzione.

  • Un'ampia regione non ordinata comporta tempi di vacuum più lunghi. Se ritardi il vacuum, questo richiederà più tempo perché è necessario riorganizzare una quantità maggiore di dati.

  • VACUUMè un'operazione che richiede un uso intensivo di I/O, quindi più tempo impiega il vostro vacuum a completare, maggiore sarà l'impatto sulle query simultanee e su altre operazioni di database in esecuzione sul cluster.

  • VACUUMrichiede più tempo per le tabelle che utilizzano l'ordinamento interlacciato. Per valutare se è necessario riordinare le tabelle interlacciate, esegui una query sulla vista SVV_INTERLEAVED_COLUMNS.

Fase di ordinamento e fase di unione

Amazon Redshift esegue un'operazione vacuum in due fasi: innanzitutto, ordina le righe nella regione non ordinata, quindi, se necessario, unisce le righe appena ordinate alla fine della tabella alle righe esistenti. Durante il vacuum di una tabella di grandi dimensioni, l'operazione di vacuum procede in una serie di passaggi costituiti da ordinamenti incrementali seguiti da unioni. Se l'operazione non riesce o se Amazon Redshift passa offline durante l'operazione vacuum, la tabella o il database parzialmente sottoposti a vacuum saranno in uno stato coerente, ma sarà necessario riavviare manualmente l'operazione vacuum. Gli ordinamenti incrementali vengono persi, ma non è necessario eseguire nuovamente il vacuum delle righe unite di cui è stato eseguito il commit prima dell'errore. Se la regione non ordinata è grande, l'operazione potrebbe richiedere molto tempo. Per ulteriori informazioni sulle fasi di ordinamento e unione, consultare Gestione del volume delle righe unite.

Gli utenti possono accedere alle tabelle mentre ne viene eseguito il vacuum. È possibile eseguire interrogazioni e operazioni di scrittura mentre una tabella viene svuotata, ma quando si esegue contemporaneamente un'operazione a vuoto, entrambe DML le operazioni potrebbero richiedere più tempo. Se si eseguono DELETE istruzioni UPDATE e istruzioni durante un vuoto, le prestazioni del sistema potrebbero ridursi. Le unioni incrementali bloccano temporaneamente le operazioni e le operazioni simultanee UPDATE e DELETE le operazioni UPDATE e DELETE le operazioni a loro volta bloccano temporaneamente le fasi di unione incrementale sulle tabelle interessate. DDLle operazioni, ad esempio ALTERTABLE, vengono bloccate fino al termine dell'operazione di aspirazione con la tabella.

Nota

Vari modificatori per VACUUM controllarne il funzionamento. È possibile utilizzarli per personalizzare il funzionamento del vacuum in base alle esigenze attuali. Ad esempio, l'utilizzo VACUUM RECLUSTER riduce l'operazione di aspirazione in quanto non esegue un'operazione di unione completa. Per ulteriori informazioni, consulta VACUUM.

Soglia di vacuum

Per impostazione predefinita, VACUUM salta la fase di ordinamento per tutte le tabelle in cui più del 95 percento delle righe della tabella sono già ordinate. Saltare la fase di ordinamento può migliorare significativamente le prestazioni. VACUUM Per modificare la soglia di ordinamento predefinita per una singola tabella, includi il nome della tabella e il PERCENT parametro TO threshold quando esegui il VACUUM comando.

Tipi di vacuum

Per ulteriori informazioni sui diversi tipi di vacuum, consultare VACUUM.