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à.
Chiavi di ordinamento
Nota
È consigliabile creare le tabelle con SORTKEY AUTO
. In tal caso, Amazon Redshift utilizza l'ottimizzazione automatica della tabella per scegliere la chiave di ordinamento. Per ulteriori informazioni, consultare Ottimizzazione automatica delle tabelle. I dettagli sull'ordinamento sono descritti in dettaglio nella parte restante di questa sezione.
Quando si crea una tabella, è possibile definire una o più delle sue colonne come chiavi di ordinamento. Quando i dati vengono caricati inizialmente nella tabella vuota, le righe vengono archiviate sul disco in modo ordinato. Le informazioni sulle colonne della chiave di ordinamento vengono passate al pianificatore di query, che utilizza questa informazioni per costruire piani che tengano in considerazione il modo in cui sono ordinati i dati. Per ulteriori informazioni, consulta CREATE TABLE. Per informazioni sulle best practice per la creazione di una chiave di ordinamento, consulta Scelta della migliore chiave di ordinamento.
L'ordinamento consente una gestione efficiente dei predicati a intervallo limitato. Amazon Redshift archivia i dati colonnari nei blocchi del disco da 1 MB. I valori minimo e massimo di ogni blocco vengono archiviati come parte dei metadati. Se una query utilizza un predicato a intervallo limitato, il processore di query può utilizzare i valori minimo e massimo per saltare rapidamente grandi numeri di blocchi durante la scansione della tabella. Ad esempio, si supponga che una tabella memorizzi cinque anni di dati ordinati per data e che una query specifichi un intervallo di un mese. In questo caso, puoi eliminare fino al 98% dei blocchi del disco dalla scansione. Se i dati non sono ordinati, dovranno essere scansionati più blocchi del disco (probabilmente tutti).
È possibile specificare la chiave di ordinamento composto o interlacciato. Una chiave di ordinamento composta è più efficiente quando i predicati di query utilizzano un prefisso, ovvero un sottoinsieme delle colonne della chiave di ordinamento in ordine. Una chiave di ordinamento interlacciato dà lo stesso peso a ogni colonna nella chiave di ordinamento, quindi i predicato di query possono utilizzare qualsiasi sottoinsieme di colonne che costituiscono la chiave di ordinamento, in qualsiasi ordine.
Per comprendere l'impatto sulle prestazioni della query della chiave di ordinamento scelta, utilizza il comando EXPLAIN. Per ulteriori informazioni, consulta Pianificazione di query e flusso di lavoro di esecuzione.
Per definire un tipo di ordinamento, utilizzate la COMPOUND parola chiave INTERLEAVED CREATE TABLE o con l'istruzione CREATE TABLE AS. L'impostazione predefinita èCOMPOUND. COMPOUNDè consigliato quando si aggiornano regolarmente le tabelle con INSERT o DELETE operazioni. UPDATE Una chiave INTERLEAVED di ordinamento può utilizzare un massimo di otto colonne. A seconda dei dati e delle dimensioni del cluster, VACUUM REINDEX richiede molto più tempo rispetto VACUUM FULL al passaggio aggiuntivo per analizzare le chiavi di ordinamento interlacciate. L'operazione di ordinamento e unione può richiedere più tempo per le tabelle interlacciate perché l'ordinamento interlacciato potrebbe dover riordinare più righe rispetto a un ordinamento composto.
Per visualizzare le chiavi di ordinamento per una tabella, eseguire la query della vista di sistema SVV_TABLE_INFO .