Announcement

Collapse
No announcement yet.

SQL Server 2000 Tuning

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Server 2000 Tuning

    Hallo Zusammen,

    ich habe ein etwas seltsames Verhalten bei meinem SQL-Server 2000:

    Über ein Programm werden XML-Dateien ausgelesen und in eine Datenbank des SQL-Servers geschrieben. Dabei erhalte ich folgendes Verhalten:

    Importieren 1 XML-Datei -> 1h 18min
    Importieren 70 XML-Dateien -> 1h 30min

    Die XML-Dateien haben alle ungefähr die gleiche Größe was die Informationen angeht.

    Mir kommt es vor, als würde der SQL-Server Statements cachen. Oder wie kann ich mir diesen unproppertionalen Zeit anstieg erklären?

    Ich möchte nun die Zeit für eine XML-Datei reduzieren, dabei habe ich mithilfe des SQL-Profiler Indizes gesetzt. Das hatte leider nicht den gewünschten Effekt.

    Habt Ihr mir vielleicht noch ein paar Ratschläge, wo ich am SQL-Server schrauben könnte?

    Vielen Dank.

  • #2
    Hallo,

    ich interpretiere die Beschreibung so, als das der SQL Server den XML-Inhalt als Zeichenkette bekommt und dann über T-SQL in dort gespeicherten Informationen in die relationalen Tabellen einfügen soll. Vor dem Zugriff über OPENXML muss dazu die Systemprozedur sp_XML_preparedocument den XML-Aufbau parsen, damit der XML-Inhalt als Rowset genutzt werden kann. Dieser Vorbereitungsaufwand verursacht die größte Last.

    ...wo ich am SQL-Server schrauben könnte?
    Ab dem MS SQL Server 2005 steht der Datentyp XML zur Verfügung, so dass die Tabelle direkt entweder untypisiertes XML oder typisiertes XML (dessen Gültigkeit von einem XML Schema definiert wird) speichern kann. Der sich bisher aus sp_XML_preparedocument ergebende Mehraufwand entfällt in diesem Fall.
    Zuletzt editiert von Andreas Kosch; 11.03.2008, 08:55.

    Comment


    • #3
      Hi,

      Danke für Deine Antwort.

      Sorry, ich habe das etwas unglücklich formuliert.

      Der SQL-Server selber hat mit den XML-Dateien nichts zutun. Das Programm bereitet die XML-Dateien auf und schreibt die Informationen über ganz normale Inserts bzw. Updates in die Datenbank.

      Comment


      • #4
        Verwendung von Prepared Statement/Stored Procedures bzw. Bulk Insert
        Dann u.U. den Importprozess auf den gleichen Rechner wie die DB ablaufen lassen (Netzwerklaufzeiten vermeiden).

        Comment

        Working...
        X