Condividi tramite


Trasformazione Merge join

Data aggiornamento: 5 dicembre 2005

La trasformazione Merge join restituisce un output generato unendo in join due set di dati ordinati, tramite un join di tipo FULL, LEFT o INNER. È ad esempio possibile utilizzare un join di tipo LEFT per unire in join una tabella che include informazioni sui prodotti con una tabella in cui sono elencati i relativi paesi di produzione. Il risultato è costituito da una tabella in cui sono elencati tutti i prodotti e i relativi paesi di origine. Per ulteriori informazioni, vedere Utilizzo dei join.

Per configurare la trasformazione Merge join, procedere nel modo seguente:

  • Specificare se il join è di tipo FULL, LEFT o INNER.

  • Specificare le colonne utilizzate dal join.

  • Specificare se la trasformazione considera uguali tutti i valori Null.

    [!NOTA] Se i valori Null non vengono considerati uguali, verranno gestiti come nel Motore di database di SQL Server.

La trasformazione Merge join richiede che entrambi gli input siano ordinati e che le colonne da unire in join abbiano metadati corrispondenti. Non è ad esempio possibile unire in join una colonna con tipo di dati numeric a una colonna con tipo di dati character. Se i dati sono di tipo string, la lunghezza della colonna nel secondo input dovrà essere minore o uguale a quella della colonna nel primo input, alla quale verrà unita.

I dati possono essere ordinati impostando opzioni di ordinamento sugli output dell'origine o su altri componenti del flusso di dati a monte oppure inserendo una trasformazione Ordinamento nel flusso di dati, prima della trasformazione Merge join. Se le opzioni di ordinamento indicano che i dati sono ordinati, mentre in realtà non lo sono, la trasformazione Merge join restituirà risultati imprevisti.

Questa trasformazione include due input e un output. Non supporta un output degli errori.

Regolazione dei buffer

La trasformazione Merge join include la proprietà MaxBuffersPerInput, che specifica il numero massimo dei buffer che possono essere contemporaneamente attivi per ogni input. È possibile utilizzare questa proprietà per ottimizzare la quantità di memoria utilizzata dai buffer della trasformazione e, di conseguenza, le prestazioni della trasformazione. Aumentando il numero dei buffer aumenta anche la quantità di memoria utilizzata dalla trasformazione, migliorando le prestazioni. Il valore predefinito di MaxBuffersPerInput è 5, ovvero il numero di buffer ottimale nella maggior parte degli scenari. Per ottimizzare le prestazioni può essere necessario utilizzare un numero di buffer lievemente diverso, ad esempio 4 o 6. Se possibile, è consigliabile evitare di utilizzare un numero di buffer molto basso. Se ad esempio si imposta MaxBuffersPerInput su 1 anziché su 5, le prestazioni subiranno un calo significativo. È inoltre consigliabile evitare di impostare MaxBuffersPerInput su 0, poiché questo valore impedisce la regolazione e, a seconda del carico di dati e della quantità di memoria disponibile, è possibile che l'esecuzione del pacchetto non venga completata.

Per evitare che si verifichi un deadlock, la trasformazione Merge join può aumentare temporaneamente il numero dei buffer utilizzati oltre il valore specificato da MaxBuffersPerInput. Dopo la risoluzione della condizione di deadlock viene ripristinato il valore configurato di MaxBuffersPerInput.

Configurazione della trasformazione Merge join

È possibile impostare le proprietà tramite Progettazione SSIS o a livello di programmazione.

Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor trasformazione Merge join, vedere Editor trasformazione Merge join.

Per ulteriori informazioni sulle proprietà che è possibile impostare a livello di programmazione, fare clic su uno degli argomenti seguenti:

Per ulteriori informazioni sulle procedure per l'impostazione delle proprietà, fare clic su uno degli argomenti seguenti:

Vedere anche

Concetti

Trasformazione Unione
Trasformazione Unione input multipli
Trasformazioni di Integration Services

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Nuovo contenuto:
  • Aggiunta della descrizione del ruolo della proprietà MaxBuffersPerInput in relazione alle prestazioni della trasformazione.