Condividi tramite


Trasformazione Ricerca

La trasformazione Ricerca consente di eseguire ricerche unendo in join i dati contenuti nelle colonne di input con le colonne in un set di dati di riferimento. È possibile utilizzare la ricerca per accedere a informazioni aggiuntive in una tabella correlata basata sui valori presenti nelle colonne comuni.

Il set di dati di riferimento può essere un file di cache, una vista o una tabella esistente, una nuova tabella o il risultato di una query SQL. La trasformazione Ricerca utilizza una gestione connessione OLE DB o una gestione connessione cache per connettersi al set di dati di riferimento. Per altre informazioni, vedere Gestione connessione OLE DB e Gestione connessione della cache

Per configurare la trasformazione Ricerca, procedere nel modo seguente:

  • Selezionare la gestione connessione che si desidera utilizzare. Se si desidera eseguire la connessione a un database, selezionare una gestione connessione OLE DB. Se si desidera eseguire una connessione a un file di cache, selezionare una gestione connessione della cache.

  • Specificare la tabella o la vista che contiene il set di dati di riferimento.

  • Generare un set di dati di riferimento specificando un'istruzione SQL.

  • Specificare i join tra il set di dati di input e quello di riferimento.

  • Aggiungere le colonne dal set di dati di riferimento all'output della trasformazione Ricerca.

  • Configurare le opzioni di memorizzazione nella cache.

La trasformazione Ricerca supporta i provider del database seguenti per la gestione connessione OLE DB:

  • SQL Server

  • Oracle

  • DB2

La trasformazione Ricerca tenta di eseguire 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 non è possibile eseguire un equijoin, viene eseguita una delle azioni seguenti:

  • Se non esiste una voce corrispondente nel set di dati di riferimento, non viene eseguito alcun join. Per impostazione predefinita, le righe senza voci corrispondenti vengono gestite come errori dalla trasformazione Ricerca. Tuttavia, è possibile configurare la trasformazione Ricerca per reindirizzare tali righe a un output senza corrispondenza. Per altre informazioni, vedere Editor trasformazione ricerca (pagina generale) e Editor trasformazione ricerca (pagina di output degli errori).

  • Se nella tabella di riferimento sono presenti più corrispondenze, la trasformazione Ricerca restituisce solo la prima corrispondenza restituita dalla query di ricerca. Se vengono rilevate più corrispondenze, viene generato un errore o un avviso nella trasformazione Ricerca solo se questa è stata configurata in modo da caricare l'intero set di dati di riferimento nella cache. In questo caso, viene generato un avviso quando vengono individuate più corrispondenze durante il riempimento della cache.

È 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 altre 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 errori di ricerca causati dalle differenze tra maiuscole e minuscole all'interno dei dati, utilizzare la trasformazione Mappa caratteri per convertire i dati in maiuscolo o minuscolo. Successivamente, includere la funzione UPPER o LOWER nell'istruzione SQL che genera la tabella di riferimento. Per altre informazioni, vedere Trasformazione Mappa caratteri, UPPER (Transact-SQL) e LOWER (Transact-SQL).

La trasformazione Ricerca dispone degli input e degli output seguenti:

  • Input.

  • Output con corrispondenza. L'output con corrispondenza gestisce le righe nell'input della trasformazione che corrispondono ad almeno una voce nel set di dati di riferimento.

  • Output nessuna corrispondenza. L'output senza corrispondenza gestisce le righe nell'input che non corrispondono ad almeno una voce nel set di dati di riferimento. Se si configura la trasformazione Ricerca in modo da gestire le righe senza corrispondenza come errori, le righe vengono reindirizzate all'output degli errori. In caso contrario, la trasformazione reindirizza tali righe all'output senza corrispondenza.

    Nota

    In SQL Server 2005 Integration Services (SSIS), la trasformazione Ricerca aveva un solo output. Per altre informazioni su come eseguire una trasformazione Ricerca creata in SQL Server 2005, vedere Aggiornare le trasformazioni di ricerca.

  • Output degli errori.

Memorizzazione nella cache del set di dati di riferimento

Una cache in memoria archivia il set di dati di riferimento e una tabella hash che indicizza i dati. La cache rimane in memoria fino a quando l'esecuzione del pacchetto non viene completata. È possibile salvare in modo permanente la cache in un file di cache (.caw).

Quando si rende la cache persistente in un file, il sistema carica la cache più velocemente. In questo modo le prestazioni della trasformazione Ricerca e del pacchetto vengono migliorate. È importante ricordare che quando si utilizza un file di cache, i dati utilizzati non sono aggiornati come quelli presenti nel database.

Di seguito sono elencati i vantaggi aggiuntivi del salvataggio permanente della cache in un file:

Di seguito sono indicate le opzioni di memorizzazione nella cache:

  • Il set di dati di riferimento viene generato tramite una tabella, una vista o una query SQL e caricato quindi nella cache prima dell'esecuzione della trasformazione Ricerca. È possibile utilizzare la gestione connessione OLE DB per accedere al set di dati.

    Tale opzione di memorizzazione nella cache è compatibile con l'opzione di memorizzazione nella cache completa disponibile per la trasformazione Ricerca in SQL Server 2005 Integration Services (SSIS).

  • Il set di dati di riferimento è generato da un'origine dati connessa nel flusso di dati o da un file di cache e viene caricato nella cache prima dell'esecuzione della trasformazione Ricerca. Per accedere al set di dati utilizzare la gestione connessione della cache e, facoltativamente, la trasformazione della cache. Per altre informazioni, vedere Gestione connessione della cache e Trasformazione Cache.

  • Il set di dati di riferimento viene generato utilizzando una tabella, una vista o una query SQL durante l'esecuzione della trasformazione Ricerca. Le righe con le voci corrispondenti nel set di dati di riferimento e le righe senza voci corrispondenti nel set di dati vengono caricate nella cache.

    Quando viene superata la dimensione massima consentita per la memoria della cache, la trasformazione Ricerca rimuove automaticamente dalla cache le righe utilizzate meno frequentemente.

    Tale opzione di memorizzazione nella cache è compatibile con l'opzione di memorizzazione nella cache parziale disponibile per la trasformazione Ricerca in SQL Server 2005 Integration Services (SSIS).

  • Il set di dati di riferimento viene generato utilizzando una tabella, una vista o una query SQL durante l'esecuzione della trasformazione Ricerca. Non sono memorizzati dati nella cache.

    Tale opzione di memorizzazione nella cache è compatibile con l'opzione di nessuna memorizzazione nella cache disponibile per la trasformazione Ricerca in SQL Server 2005 Integration Services (SSIS).

Integration Services e SQL Server differiscono nel modo in cui confrontano le stringhe. Se la trasformazione Ricerca è configurata per caricare il set di dati di riferimento nella cache prima dell'esecuzione della trasformazione Ricerca, in Integration Services viene eseguito il confronto della ricerca nella cache. In caso contrario, l'operazione di ricerca usa un'istruzione SQL con parametri e in SQL Server viene eseguito il confronto della ricerca. Ciò significa che la trasformazione Ricerca potrebbe restituire un diverso numero di corrispondenze dalla stessa tabella di ricerca in base al tipo di cache.

È possibile impostare le proprietà tramite Progettazione SSIS o a livello di codice. Per informazioni dettagliate, vedere gli argomenti seguenti.

Vedere anche

Trasformazione Ricerca fuzzy
Trasformazione Ricerca termini
Flusso di dati
Trasformazioni di Integration Services