---
title: "MapForce supporta la funzionalità di \"merge\" SQL quando questa è la soluzione più adatta per il compito da svolgere"
date: "2016-11-01"
categories: 
  - "data-integration"
  - "tools"
tags: 
  - "database-mapping"
  - "etl"
  - "mapforce"
  - "sql-bulk-merge"
description: Scoprite come Altova MapForce migliora l'efficienza dei processi ETL, supportando le operazioni di merge SQL per database di grandi dimensioni, consentendo inserimenti e aggiornamenti di massa in modo fluido.
---
Status: #blog

Tags:  #database-mapping #etl #mapforce #sql-bulk-merge

Categories: [data-integration](/blog/it/category/data-integration.md) | [database + sql](/blog/it/category/database-sql.md)
# MapForce supporta la funzionalità di "merge" SQL quando questa è la soluzione più adatta per il compito da svolgere

Le tabelle di database di grandi dimensioni possono facilmente contenere milioni, persino centinaia di milioni di righe di dati. Gli amministratori di database e altri responsabili della gestione di questi grandi set di dati sono sempre preoccupati per i tempi di esecuzione delle operazioni ETL (estrazione, trasformazione e caricamento), degli aggiornamenti e di altre query SQL. Per rendere queste operazioni più efficienti, alcuni, ma non tutti, i fornitori di database hanno implementato un'istruzione SQL di "merge" per inserire o aggiornare le righe di una tabella esistente come un'unica operazione di inserimento massivo, invece di richiedere istruzioni individuali per ogni riga.

Altova MapForce supporta automaticamente la funzionalità di merge SQL quando questa è disponibile per il [database di destinazione](https://www.altova.com/it/mapforce/database-mapping.html). Vediamo un esempio.

![shutterstock_66084286](/blog/images/shutterstock_66084286.jpg)

<!--more-->

### Inserimento vs. Aggiornamento: se

L'immagine sottostante illustra una mappatura dei dati che collega gli elementi di un file XML a una tabella di un database.

![Altova MapForce: Mappatura di database](/blog/images/database-mapping.png)

Di default, MapForce genera un'istruzione SQL di inserimento per ogni elemento "Persona" nel file sorgente, il che è adatto per popolare le righe di una nuova tabella di database vuota. In altre situazioni, come la sincronizzazione di una copia di backup con un set di dati attivo, le istruzioni di inserimento non sono appropriate. MapForce offre la possibilità di specificare, in modo semplice, l'operazione SQL corretta necessaria per ogni mappatura del database.

Per aprire la finestra di dialogo "Azioni sulla tabella del database" di MapForce, basta cliccare sull'icona "Azione" accanto alla tabella del database desiderata, che nell'esempio precedente è la tabella "Person". Lo screenshot qui sotto illustra la funzionalità a tendina che consente di modificare l'istruzione SQL "Insert" in "Update-If".

![Aggiornamento dei dati: azione "If" in Altova MapForce](/blog/images/set-update-if-action.png)

Aggiornamento: se è necessario impostare una condizione. In questa mappatura, vogliamo aggiornare i record nel database quando i dati di origine contengono una chiave primaria esistente. Inoltre, vogliamo inserire una nuova riga quando la chiave primaria nei dati di origine non esiste già nel database.

Questa operazione è comunemente nota come "Aggiorna se... e poi inserisci".

La finestra di dialogo "Azioni sulla tabella del database" ci permette di definire la condizione da verificare per l'aggiornamento e un'azione alternativa da eseguire quando la condizione è falsa. L'insieme completo di azioni che definisce "Aggiorna se... altrimenti inserisci" è visualizzato qui:

![Aggiornamento completato: se la funzione "Merge" è supportata in MapForce, l'operazione è stata eseguita correttamente](/blog/images/CompletedAction.png)

### Aggiornamento rispetto alla fusione massiva

Finora, non abbiamo nemmeno menzionato il fornitore del database per la tabella di destinazione del nostro mapping. Questo perché il mapping è definito nello stesso modo per tutti i database più diffusi supportati da MapForce. Non è necessario fare nulla di diverso, indipendentemente dal fatto che il database di destinazione supporti o meno la funzionalità di merge SQL.

Quando si fa clic sulla scheda "Output di MapForce" situata sotto la progettazione della mappatura del database, MapForce genera uno script SQL personalizzato per il tipo di database specifico. Questo script viene quindi visualizzato nella finestra di output di MapForce per la revisione. Non viene eseguito automaticamente.

Se il database di destinazione supporta l'istruzione SQL MERGE, vedrete un'istruzione MERGE all'inizio dello script.

![Aggiornamento completato: se la funzione "Merge" è supportata in MapForce, l'operazione è stata eseguita correttamente](/blog/images/SQL-with-merge2.png)

Se il database di destinazione non supporta l'istruzione SQL MERGE, visualizzerete singole istruzioni UPDATE...WHERE per ogni riga dei dati di origine.

![Script MapForce per un database che non supporta l'istruzione SQL MERGE](/blog/images/SQL-with-update2.png)

È possibile eseguire lo script direttamente in MapForce selezionando l'opzione "Esegui script SQL" dal menu "Output" di MapForce, oppure è possibile salvare la mappatura come file di esecuzione e automatizzarla in MapForce Server, specificando i nomi dei file di input al momento dell'esecuzione.

Se il database di destinazione supporta l'istruzione SQL Merge, quest'ultima verrà generata indipendentemente dal fatto che la mappatura venga eseguita direttamente da MapForce o automatizzata tramite MapForce Server. MapForce 2017 supporta le istruzioni SQL Merge per SQL Server 2008 e versioni successive, Oracle, IBM DB2 e Firebird.

I test eseguiti qui presso Altova indicano che l'esecuzione massiva di SQL Merge tramite MapForce Server può essere fino a 15 volte più efficiente rispetto alle tecniche precedenti.*

*Nota: L'asterisco indica che si tratta di una dichiarazione che necessita di una nota a piè di pagina o di ulteriori chiarimenti, ma non è possibile fornirli senza il contesto completo.*

[Clicca qui per maggiori informazioni](https://www.altova.com/it/mapforce/database-mapping.html) sulla mappatura dei database con MapForce, inclusa una lista completa dei database supportati come fonti o destinazioni per la mappatura dei dati, oppure [clicca qui per scaricare](https://www.altova.com/it/download-trial.html) una versione di prova gratuita e completamente funzionante per 30 giorni. I file utilizzati per la mappatura in questo articolo del blog sono forniti come esempi di MapForce, e istruzioni dettagliate per ricreare la mappatura sono disponibili nella guida integrata di MapForce.

 

* I risultati delle prestazioni si basano su test interni di Altova. I vostri risultati potrebbero variare.
