---
title: "MapForce ondersteunt SQL Merge wanneer dit het juiste hulpmiddel is voor de taak"
date: "2016-11-01"
categories: 
  - "data-integration"
  - "tools"
tags: 
  - "database-mapping"
  - "etl"
  - "mapforce"
  - "sql-bulk-merge"
description: Ontdek hoe Altova MapForce de efficiëntie van ETL-processen verbetert door SQL-merge-bewerkingen te ondersteunen voor grote databases, waardoor bulk-inserts en -updates naadloos kunnen worden uitgevoerd.
---
Status: #blog

Tags:  #database-mapping #etl #mapforce #sql-bulk-merge

Categories: [data-integration](/blog/nl/category/data-integration.md) | [database + sql](/blog/nl/category/database-sql.md)
# MapForce ondersteunt SQL Merge wanneer dit het juiste hulpmiddel is voor de taak

Grote databases kunnen gemakkelijk tabellen bevatten met miljoenen, zelfs honderden miljoenen rijen data. Databasebeheerders en andere personen die verantwoordelijk zijn voor het onderhouden van dergelijke grote datasets, maken zich altijd zorgen over de uitvoeringstijd van ETL-bewerkingen (Extract, Transform, and Load), updates en andere SQL-query's. Om deze bewerkingen efficiënter te maken, hebben sommige – maar niet alle – databaseleveranciers een SQL-merge-statement geïmplementeerd om rijen in een bestaande tabel in te voegen of bij te werken als één bulk-insert-statement, in plaats van dat er afzonderlijke statements nodig zijn voor elke rij.

Altova MapForce ondersteunt automatisch SQL-merge wanneer deze beschikbaar is voor de [doeldatabase](https://www.altova.com/nl/mapforce/database-mapping.html). Laten we eens een voorbeeld bekijken.

![shutterstock_66084286](/blog/images/shutterstock_66084286.jpg)

<!--more-->

### Invoegen versus bijwerken: Als

De afbeelding hieronder illustreert een datamapping waarbij elementen van een XML-bestand worden gekoppeld aan een database-tabel.

![Altova MapForce: Database-mapping](/blog/images/database-mapping.png)

Standaard genereert MapForce een SQL-insert-statement voor elk "Person"-element in het bronbestand, wat prima is voor het vullen van rijen in een nieuwe, lege database-tabel. In andere situaties, zoals het synchroniseren van een back-upkopie met een actuele dataset, zijn insert-statements niet geschikt. MapForce biedt de mogelijkheid om eenvoudigweg de juiste SQL-operatie op te geven die u nodig heeft voor elke database-mapping.

Klik eenvoudig op het pictogram "Actie" naast de doeldatabase-tabel, die in het bovenstaande voorbeeld de tabel "Person" is, om het dialoogvenster "Database-tabelacties" van MapForce te openen. De onderstaande screenshot illustreert de dropdown-functie waarmee u de SQL-insert-instructie kunt wijzigen in een "update-als"-instructie.

![Bijwerken van gegevensvelden in Altova MapForce](/blog/images/set-update-if-action.png)

Bij een update moet er een voorwaarde worden gesteld. In deze mapping willen we records in de database bijwerken waar de brongegevens een bestaande primaire sleutel bevatten. Daarnaast willen we een nieuwe rij toevoegen wanneer de primaire sleutel in de brongegevens nog niet bestaat in de database.

Dit staat algemeen bekend als een "Update indien... voeg het overige toe"-operatie.

Het dialoogvenster "Database tabel acties" stelt ons in staat om de voorwaarde te definiëren die moet worden getest voor een update, en een alternatieve actie die wordt uitgevoerd wanneer de voorwaarde onwaar is. De complete set acties die "Update indien... anders invoegen" definieert, wordt hier weergegeven:

![Volledige update: MapForce ondersteunt nu SQL Merge](/blog/images/CompletedAction.png)

### Bijwerken versus massale samenvoeging

Tot nu toe hebben we nog niet eens gesproken over de leverancier van de database voor de doel-tabel van onze mapping. Dat komt omdat de mapping op dezelfde manier is gedefinieerd voor alle populaire databases die door MapForce worden ondersteund. We hoeven niets anders te doen, ongeacht of de doeldatabase SQL merge ondersteunt of niet.

Wanneer we op het tabblad "MapForce Output" klikken, dat zich onder het ontwerp van de database-mapping bevindt, genereert MapForce een SQL-script dat is aangepast aan het specifieke type database. Dit script wordt vervolgens weergegeven in het MapForce-uitvoer venster, zodat u het kunt bekijken. Het wordt NIET automatisch uitgevoerd.

Als de doeldatabase SQL Merge ondersteunt, ziet u een MERGE-statement aan het begin van het script.

![Volledige update: MapForce ondersteunt nu SQL Merge](/blog/images/SQL-with-merge2.png)

Als de doeldatabase SQL Merge niet ondersteunt, ziet u afzonderlijke UPDATE...WHERE-statements voor elke rij van de brondata.

![MapForce-script voor een database die geen SQL Merge ondersteunt](/blog/images/SQL-with-update2.png)

U kunt het script direct in MapForce uitvoeren door de optie "SQL-script uitvoeren" te selecteren in het MapForce-menu "Uitvoer", of u kunt de mapping opslaan als een uitvoerbestand en deze automatisch uitvoeren in MapForce Server, waarbij de namen van de invoerbestanden tijdens de uitvoering worden opgegeven.

Als de doeldatabase SQL Merge ondersteunt, worden er merge-statements gegenereerd, ongeacht of de mapping direct wordt uitgevoerd door MapForce of geautomatiseerd via MapForce Server. MapForce 2017 ondersteunt SQL Merge-statements voor SQL Server 2008 en nieuwere versies, Oracle, IBM DB2 en Firebird.

Tests die hier bij Altova zijn uitgevoerd, laten zien dat het grootschalig uitvoeren van SQL Merge via MapForce Server tot wel 15 keer efficiënter kan zijn dan eerdere methoden.*

*Let op: Dit is een disclaimer die mogelijk verder moet worden aangepast afhankelijk van de context

[Klik hier voor meer informatie](https://www.altova.com/nl/mapforce/database-mapping.html) over database-mapping met MapForce, inclusief een complete lijst van databases die worden ondersteund als bronnen of bestemmingen voor data-mapping. U kunt ook [hier klikken om te downloaden](https://www.altova.com/nl/download-trial.html) een gratis, volledig functionele proefversie van 30 dagen. De bestanden die gebruikt worden voor de mapping in dit blogbericht zijn beschikbaar als MapForce-voorbeelden, en gedetailleerde instructies om de mapping te reproduceren, zijn te vinden in de geïntegreerde MapForce-help.

 

* De prestatieresultaten zijn gebaseerd op interne tests van Altova. Uw resultaten kunnen afwijken.
