Condividi tramite


Trasformazione Ricerca

Data aggiornamento: 12 dicembre 2006

La trasformazione Ricerca esegue ricerche unendo in join i dati contenuti nelle colonne di input e le colonne in un set di dati di riferimento. Il set di dati di riferimento può essere una vista o tabella esistente, una nuova tabella o il risultato di un'istruzione SQL. La trasformazione Ricerca utilizza una gestione connessione OLE DB per connettersi al database che contiene i dati che costituiscono l'origine del set di dati di riferimento. Per ulteriori informazioni, vedere Gestione connessione OLE DB

Per configurare la trasformazione Ricerca, procedere nel modo seguente:

  • Specificare la tabella o la vista che contiene il set di dati di riferimento.
  • Generare una tabella di riferimento specificando un'istruzione SQL.
  • Specificare i join tra il set di dati di input e quello di riferimento.
  • Aggiungere le colonne del set di dati di riferimento all'output della trasformazione.
  • Utilizzando un'istruzione SQL di caching, specificare che il set di dati di riferimento viene memorizzato completamente o in parte nella cache per migliorare le prestazioni.
  • Mappare i parametri di un'istruzione SQL memorizzata nella cache a colonne di input.
  • Specificare quanti megabyte di memoria possono essere utilizzati dalla trasformazione in ambienti a 32 e a 64 bit. Negli ambienti a 32 bit esiste un limite pari a 3072 MB che non si applica invece a quelli a 64 bit.

La trasformazione Ricerca esegue un equijoin tra i valori nell'input della trasformazione e quelli nel set di dati di riferimento. Questo significa che a ogni riga nell'input della trasformazione deve corrispondere almeno una riga nel set di dati di riferimento. Se nel set di dati di riferimento non è presente una voce corrispondente, non verrà eseguito alcun join e non verranno restituiti valori dal set di dati di riferimento. Questa condizione costituisce un errore e la trasformazione non riesce, a meno che non sia configurata in modo da ignorare gli errori o da reindirizzare le righe con errori all'output degli errori. Se nella tabella di riferimento sono presenti più corrispondenze, la ricerca restituirà solo la prima corrispondenza, in base alla query di ricerca. Quando vengono trovate più corrispondenze non viene generato alcun errore o avviso, a meno che la trasformazione Ricerca non sia configurata per l'utilizzo del pre-caching completo. Se viene utilizzato il pre-caching completo e durante il caricamento dei dati nella cache vengono rilevate più corrispondenze, verrà generato un avviso.

È possibile utilizzare anche join composti, ovvero unire in join più colonne nell'input della trasformazione alle colonne nel set di dati di riferimento. La trasformazione supporta colonne di join con qualsiasi tipo di dati, ad eccezione di DT_R4, DT_R8, DT_TEXT, DT_NTEXT o DT_IMAGE. Per ulteriori informazioni, vedere Tipi di dati di Integration Services.

I valori ottenuti dal set di dati di riferimento vengono in genere aggiunti all'output della trasformazione. La trasformazione Ricerca può ad esempio estrarre il nome di un prodotto da una tabella utilizzando un valore letto da una colonna di input e quindi aggiungere il nome del prodotto all'output della trasformazione. I valori ottenuti dalla tabella di riferimento possono sostituire i valori delle colonne o essere aggiunti a nuove colonne.

Nelle ricerche eseguite dalla trasformazione Ricerca viene fatta distinzione tra maiuscole e minuscole. Per evitare che la ricerca non riesca a causa delle diverse combinazioni di maiuscole e minuscole utilizzate nei dati, è possibile convertire prima i dati in maiuscolo o minuscolo utilizzando la trasformazione Mappa caratteri e quindi includere la funzione UPPER o LOWER nell'istruzione SQL che genera la tabella di riferimento. Per ulteriori informazioni, vedere Trasformazione Mappa caratteri, UPPER (Transact-SQL) e LOWER (Transact-SQL).

È possibile limitare le probabilità che la ricerca non riesca anche evitando di memorizzare i dati nella cache e leggendo i dati da un database per cui non viene fatta distinzione tra maiuscole e minuscole.

Questa trasformazione include un input, un output regolare e un output degli errori.

Tipi di caching

La memoria per un set di dati di riferimento può essere allocata nei modi seguenti:

  • Pre-caching completo, in cui il set di dati di riferimento viene interamente letto prima dell'elaborazione dell'input. Questo è il tipo di caching predefinito. Per configurare una trasformazione Ricerca per l'utilizzo del pre-caching completo, verificare che tutte le opzioni presenti nella scheda Avanzate di Editor trasformazione Ricerca siano deselezionate.
  • Caching parziale, in cui la trasformazione Ricerca specifica le dimensioni della cache che viene caricata con i dati di riferimento. Questa opzione è disponibile solo con le connessioni che supportano l'accesso basato su chiavi. Per configurare una trasformazione Ricerca per l'utilizzo del caching parziale, nella scheda Avanzate di Editor trasformazione Ricerca selezionare Abilita restrizione memoria e quindi Abilita memorizzazione nella cache o Modifica istruzione SQL oppure selezionare sia Abilita memorizzazione nella cache che Modifica istruzione SQL.
  • Nessun caching, in cui ogni riga del set di righe accede direttamente al set di dati di riferimento. Per configurare una trasformazione Ricerca per non utilizzare alcun caching, nella scheda Avanzate di Editor trasformazione Ricerca selezionare Abilita restrizione memoria e deselezionare tutte le altre opzioni.

Per ulteriori informazioni sulla scheda Avanzate, vedere Editor trasformazione Ricerca (scheda Avanzate).

Se vengono elaborate colonne contenenti valori Null, le trasformazioni Ricerca configurate in modo da non utilizzare il caching o da utilizzare il caching parziale avranno esito negativo, a meno che l'istruzione SQL non venga aggiornata manualmente includendo una condizione OR ISNULL(ColumnName). Se viene utilizzato il pre-caching completo, la ricerca avrà invece esito positivo.

[!NOTA] Se possibile, evitare di utilizzare colonne che possono contenere valori Null nelle operazioni di ricerca. Se una colonna contiene valori Null, configurare la trasformazione Ricerca in modo da utilizzare un output degli errori che indirizza a un output distinto della trasformazione le righe per cui non esistono righe corrispondenti nella tabella di riferimento. In alternativa è possibile provare a utilizzare il caching completo, che supporta operazioni di ricerca su valori Null.

Integration Services e SQL Server si comportano in modo diverso ai fini del confronto tra le stringhe. Se la trasformazione Ricerca è configurata per utilizzare il pre-caching completo, in Integration Services il confronto di ricerca viene eseguito nella cache. In caso contrario, l'operazione di ricerca utilizza un'istruzione SQL con parametri e il confronto viene eseguito da SQL Server. Ciò significa che la trasformazione Ricerca può restituire un numero diverso di corrispondenze dalla stessa tabella di ricerca a seconda del tipo di cache.

Istruzione SQL di caching

La trasformazione Ricerca può essere configurata in modo da utilizzare un'istruzione SQL di caching. L'istruzione SQL può selezionare un subset del set di dati di riferimento, per limitarne le dimensioni. Se il set di dati di riferimento è molto grande, l'utilizzo di un'istruzione di caching consentirà di limitare la quantità di memoria utilizzata.

La clausola WHERE dell'istruzione SQL di caching può contenere valori o parametri. I parametri vengono mappati alle colonne di input e, in fase di esecuzione, vengono aggiornati con i valori di queste ultime.

Risoluzione dei problemi della trasformazione Ricerca

Da Microsoft SQL Server 2005 Service Pack 2 (SP2) è possibile registrare le chiamate eseguite dalla trasformazione Ricerca a provider di dati esterni. Questa nuova funzionalità di registrazione può essere utilizzata per risolvere i problemi relativi al popolamento della cache da origini dei dati esterne da parte della trasformazione Ricerca. Per registrare le chiamate eseguite dalla trasformazione Ricerca a un provider di dati esterno, abilitare la registrazione dei pacchetti e selezionare l'evento Diagnostic a livello del pacchetto. Per ulteriori informazioni, vedere Risoluzione dei problemi relativi all'esecuzione di pacchetti.

Configurazione della trasformazione Ricerca

È 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 Ricerca, fare clic su uno degli argomenti seguenti:

Nella finestra di dialogo Editor avanzato sono disponibili le proprietà che è possibile impostare a livello di programmazione. Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor avanzato o 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 Ricerca fuzzy
Trasformazione Ricerca termini
Creazione del flusso di dati di un pacchetto
Trasformazioni di Integration Services

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

12 dicembre 2006

Nuovo contenuto:
  • Aggiunta di informazioni su come utilizzare l'interfaccia utente per abilitare tipi di caching diversi.
  • Aggiunta di informazioni relative a nuovi messaggi di registrazione di SQL Server 2005 SP2 che consentono agli utenti di risolvere i problemi relativi alle chiamate che la trasformazione esegue a provider di dati esterni.

14 aprile 2006

Nuovo contenuto:
  • Descrizione della possibilità di specificare le dimensioni della cache per gli ambienti a 32 e a 64 bit.
  • Aggiunta di informazioni sulle implicazioni dell'utilizzo di tipi di cache diversi.

5 dicembre 2005

Contenuto modificato:
  • Descrizione del funzionamento delle corrispondenze.