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:
- Editor trasformazione Ricerca (scheda Tabella di riferimento)
- Editor trasformazione Ricerca (scheda Colonne)
- Editor trasformazione Ricerca (scheda Avanzate)
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:
- Procedura: Implementazione di una ricerca utilizzando la trasformazione Ricerca
- Procedura: Impostazione delle proprietà di un componente di un flusso di dati utilizzando l'editor del componente
- Procedura: Impostazione delle proprietà di un componente di un flusso di dati nella finestra Proprietà
- Procedura: Impostazione delle proprietà di un componente di un flusso di dati utilizzando l'editor avanzato
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
Cronologia modifiche
Versione | Cronologia |
---|---|
12 dicembre 2006 |
|
14 aprile 2006 |
|
5 dicembre 2005 |
|