Je ne parviens pas à optimiser la requête de mise à jour suivantetrès lent import xml dans SQL Server 2016
requête SQL
DECLARE @XmlFile4 XML
SELECT @XmlFile4 = BulkColumn
FROM OPENROWSET(BULK 'C:\Temp\GeoDynamics\Downloads\GeoBewegingen.xml', SINGLE_BLOB) x;
WITH XMLNAMESPACES (DEFAULT 'http://www.geodynamics.be/webservices')
UPDATE GeoBewegingen
SET voernaam = resource.value('(../../Vehicle/Name)[1]', 'varchar(255)'),
voercode = resource.value('(../../Vehicle/Code)[1]', 'varchar(255)'),
pervan = resource.value('(../../FromDateLocal)[1]', 'varchar(255)'),
pertot = resource.value('(../../ToDateLocal)[1]', 'varchar(255)'),
tripvan = resource.value('(FromDateLocal)[1]', 'varchar(255)'),
triptot = resource.value('(ToDateLocal)[1]', 'varchar(255)'),
tripvanlocstr = resource.value('(FromLocation/Address/Street)[1]', 'varchar(255)'),
tripvanlocnr = resource.value('(FromLocation/Address/HouseNumber)[1]', 'varchar(255)'),
tripvanlocpc = resource.value('(FromLocation/Address/PostalCode)[1]', 'varchar(255)'),
tripvanloccity = resource.value('(FromLocation/Address/City)[1]', 'varchar(255)'),
tripvanlocsub = resource.value('(FromLocation/Address/Submunicipality)[1]', 'varchar(255)'),
tripvanloccountry = resource.value('(FromLocation/Address/Country)[1]', 'varchar(255)'),
tripvanlong = resource.value('(FromLocation/Longitude)[1]', 'varchar(255)'),
tripvanlat = resource.value('(FromLocation/Latitude)[1]', 'varchar(255)'),
tripnaarlocstr = resource.value('(ToLocation/Address/Street)[1]', 'varchar(255)'),
tripnaarlocnr = resource.value('(ToLocation/Address/HouseNumber)[1]', 'varchar(255)'),
tripnaarlocpc = resource.value('(ToLocation/Address/PostalCode)[1]', 'varchar(255)'),
tripnaarloccity = resource.value('(ToLocation/Address/City)[1]', 'varchar(255)'),
tripnaarlocsub = resource.value('(ToLocation/Address/Submunicipality)[1]', 'varchar(255)'),
tripnaarloccountry = resource.value('(ToLocation/Address/Country)[1]', 'varchar(255)'),
tripnaarlong = resource.value('(ToLocation/Longitude)[1]', 'varchar(255)'),
tripnaarlat = resource.value('(ToLocation/Latitude)[1]', 'varchar(255)'),
triptype = resource.value('(Type)[1]', 'varchar(255)'),
tripkmgereden = resource.value('(MileageDriven)[1]', 'varchar(255)'),
tripkmvogelvlucht = resource.value('(MileageBirdFlight)[1]', 'varchar(255)'),
tripuserid = resource.value('(Users/UserEntity/Id)[1]', 'varchar(255)'),
tripusername = resource.value('(Users/UserEntity/Name)[1]', 'varchar(255)')
FROM
@XmlFile4.nodes('//TripOverview_GetByVehicleIdListDateResponse/TripOverview_GetByVehicleIdListDateResult/TripOverviewEntity/TripItemEntities/TripItemEntity') AS XTbl1(resource)
WHERE
resource.value('(../../Vehicle/Id)[1]', 'varchar(255)') = id
AND resource.value('(FromDateLocal)[1]', 'varchar(255)') = tripvan
Je suis en train d'importer ce fichier XML (https://ufile.io/8d9of), mais il faut compter entre 2-3 minutes pour terminer l'importation. Comment puis-je l'accélérer puisque le serveur n'est pas le problème (SQL Server 2016, ssd d'entreprise, Dual Xeon cpu et 256Go ddr4 ram)
Mise à jour - déclaration complète de mise à jour Ajouté –