Announcement

Collapse
No announcement yet.

Performance Problem

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

  • Performance Problem

    Hallo,

    wir haben ein Problem bei der Performance des SQL Servers 2005.

    Auf einem Windows 2008 Server 64-Bit (2 CPU Xeon Quad Core 2,5GHz, 10GB Ram) läuft ein SQL Server 2005 (Standard).
    Parallel dazu läuft auf einem Laptop (Windows Vista Home 4GB Ram, Core 2 Duo 2,1 GHz) ein SQL Server 2005 Express.

    Aus Testgründen haben wir eine einfache Tabelle mit 5 Text- und 6 Zahlen-Spalten erstellt. In diese tragen wir per Insert-Befehl : z.B.

    INSERT INTO Test (ID, Text1,Text2,Text3,Text4,Text5,Zahl1,Zahl2,Zahl3,Za hl4,Zahl5) VALUES (1,'AAAAAA','BBBBB','CCCC','DDDDDDDD','EEEEE',5,1, 3,1,3)

    2000 Zeilen ein.

    Die Insert-Befehle werden lokal über das Management-Studio abgeschickt.

    Auf dem echten Server (der um einiges leistungsstärker als der Laptop ist) braucht der Server ca. 13 Sekunden für die Inserts, auf dem Laptop gerade mal 2 Sekunden.

    Anmerkungen:
    "Select"-Abfragen laufen auf dem Server schneller als auf dem Laptop.

    Existieren irgendwelche Protkollierungen auf dem Standardserver, die das ganze verlangsamen ? Vielleicht hat jemand Ansätze, wo wir suchen können.

    Vielen Dank im Voraus

    Marco Kuschick
    Zuletzt editiert von kuschick; 04.06.2010, 12:15.

  • #2
    (der um einiges leistungsstärker als der Laptop ist)
    Inserts sind vor allem IO-lastig, insbesondere auch wenn man reichlich Indizes hat die nachgezogen werden müssen. Da du einen einzelnen Insert Job beurteilst in einer relativ kleinen Datenbank ist die von dir beschrieben Hardware für diese Aufgabe fast als gleichwertig zu beurteilen. Es kommt wahrscheinlich mehr auf das IO-Subsystem an.

    Wenn du ein aktuelles Notebook mit 'ner SSD Platte oder sogar einem SSD Raid gegen einen typischen Server wo die Platten nicht lokal sind sondern irgendwo in einem NAS liegen antreten läßt könnte dein beobachtetes Verhalten normal sein.

    Inwiefern sich die Standardeinstellungen der Express von der Standardversion weiß ich allerdings nicht da könnte aber auch ein Problem schlummern. Sind das auf beiden System Backups der selben DB oder jeweils auf dem System neuangelegte Datenbank mit den dann jeweils Systemeigenen Defaults?

    Comment


    • #3
      Es kommt wahrscheinlich mehr auf das IO-Subsystem an.
      Dann würde ich es direkt austauschen, denn 13 Sekunden für 2000 Inserts auf dieser Maschine sind nicht wirklich annehmbar.

      Hast Du schon mal versucht, die Inserts per Skript auf der Kommandozeile einzuspielen? Bei graphischen Oberflächen werden oft noch "lustige" Dinge zwischendurch gemacht, die die Ausführung nicht unbedingt beschleunigen.

      Was passiert, wenn ihr einen INSERT INTO tabelleX SELECT * FROM tabelleX auf die Tabelle macht nachdem die Tabelle einmalig befüllt wurde? Wie lange dauern die 2000 Zeilen dann?

      Dim
      Zitat Tom Kyte:
      I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

      Comment


      • #4
        Vielen Dank für die Ansätze.

        Marco Kuschick

        Anmerkung :
        Haben mit dem Einsatz von BEGIN TRAN und COMMIT TRAN eine extreme Beschleunigung erzielt.

        Comment


        • #5
          Dann war vermutlich Autocommit aktiv und hat nach jedem Datensatz committet, was natürlich zusätzliche Zeit benötigt.

          Dim
          Zitat Tom Kyte:
          I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

          Comment


          • #6
            Was passiert wenn die 2000 Zeilen vom Management-Studio durchgeführt werden der auf dem Server gestartet wird? Ansonsten wird eher die Netzwerkperformance gemessen.

            Comment


            • #7
              Hast Du Dir auch schon mal die Clientstatistiken in SSMS ausgeben lassen? Die sind etwas objektiver als ein gefühltes schnell/langsam.
              Olaf Helper

              <Blog> <Xing>
              * cogito ergo sum * errare humanum est * quote erat demonstrandum *
              Wenn ich denke, ist das ein Fehler und das beweise ich täglich

              Comment

              Working...
              X