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à.
EXPLAIN si unisce ai piani di query di Amazon Redshift
Amazon Redshift utilizza diversi operatori di join per recuperare i dati in base a quanto segue:
-
Il design fisico delle tabelle che vengono unite
-
La struttura dell'interrogazione
-
La posizione dei dati richiesti dal join
-
I requisiti specifici della query stessa
I seguenti tipi di join sono comunemente usati in Amazon Redshift:
-
Loop annidato: un ciclo nidificato si verifica quando non è possibile creare una tabella hash tra le due tabelle. I loop annidati vengono utilizzati principalmente per i cross-join (prodotti cartesiani) e alcuni join di disuguaglianza. Ciò richiederà che il database verifichi ogni valore nella tabella di sinistra rispetto a ogni valore nella tabella di destra. La complessità di un nested loop join è «quadratica» in quanto è necessario eseguire all'incirca N*N (o N²) diverse operazioni per elaborare il join. Il nested loop è il tipo di join meno ottimale.
-
Hash join: in un hash join, le condizioni di join non sono perfette l'una per l'altra, ma Amazon Redshift può gestire l'utilizzo degli hash join con un po' di lavoro. Un hash join è in genere più veloce di un nested loop join. Amazon Redshift esamina entrambe le tabelle e tra di esse crea una tabella hash, simile a una tabella di ricerca posizionata al centro delle tabelle. Ad esempio, gli operatori hash join e hash vengono utilizzati quando si uniscono tabelle in cui le colonne di join non sono sia chiavi di distribuzione che chiavi di ordinamento.
-
Merge join: un merge join è in genere il join più veloce e viene utilizzato per i join interni e i join esterni. In un merge join, entrambe le tabelle sono perfette l'una per l'altra. Ciò significa che la condizione di unione su ciascun lato è la chiave di distribuzione e la chiave di ordinamento. Entrambi i tavoli si allineano perfettamente senza alcuna necessità di regolazione. Tieni presente che le righe non ordinate nelle tabelle devono essere inferiori al 20 percento delle tabelle di unione. Per visualizzare la percentuale di righe non ordinate, interrogate la tabella di sistema SVV_TABLE_INFO. Merge join non si utilizza per le full join.