Import von XML Datei in SQL Server ist zu langsam

die Aufgabe, die ich erreichen möchte, ist die import-XML-Datei in SQL Server. Einmal bereiten Sie den leeren Tisch, ich würde das laden der gesamten xml-Datei und füllen Sie diese Tabelle. Googeln habe ich herausgefunden, dass SQL Bulk Insert ist geeignet, so getestet habe ich folgenden code, die gut läuft:

INSERT INTO Products (sku, product_desc)
SELECT X.product.query('SKU').value('.', 'INT'),
       X.product.query('Desc').value('.', 'VARCHAR(30)')
FROM (
SELECT CAST(x AS XML)
FROM OPENROWSET(
    BULK 'C:\Products.xml',
    SINGLE_BLOB) AS T(x)
    ) AS T(x)
CROSS APPLY x.nodes('Products/Product') AS X(product);

Meine XML-Datei zu zählen um 1860 Knoten (30kb), ziemlich klein, aber die oben beschriebene Prozedur dauert über 5 Minuten, um den import der gesamten Datei. Gibt es irgendeine chance, spee bis dieser Prozess?
Ich habe auch gelesen, dass SQL Server 2008 einen Fehler haben, welche einen Einfluss auf die bulk-Objekt.
Irgendwelche Tipps?

  • Sie sind besser dran, das Parsen von XML in C# oder einer anderen Sprache, und importieren Sie Sie über eine Anwendung.
  • Ja, du hast Recht. Den ersten Versuch war das importieren von xml-Daten mithilfe von C#, aber ich dachte, dass Bulk-Prozeduren von SQL Server wurden mehr zuverlässig
  • Gut, XML-und relationalen Datenbanken... nicht in der Regel eine gute Passform.
InformationsquelleAutor Ras | 2012-07-04
Schreibe einen Kommentar