Announcement

Collapse
No announcement yet.

UPDATE-Befehl dauert sehr lange

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

  • UPDATE-Befehl dauert sehr lange

    Hallo Leute,

    ich habe eine Situation, die ich selber nicht erklären kann.
    Es gibt eine Tabelle (Zieltabelle) mit ca. 5,6 Millionen Datensätze, der tägliche Datenzuwachs beträgt durchschnittlich 1,3 Tausend Datensätze.
    Daten in dieser Tabelle werden aktualisiert, dafür werden gruppierte Daten aus einer anderen Tabelle (Quelltabelle, 38 Tausend gruppierte DS, 42 Tausend, wenn die Daten nicht gruppiert sind) genommen (INNER JOIN-Befehl)

    Bei der Aktualisierung sind ca. 17 Tausend Datensätze in Zieltabelle betroffen.

    Wenn die Aktualisierungsabfrage ausgelöst ist, dauert es ca. 1200 Sekunden!
    Es ist unglaublich viel. Als ich die Ursache gesucht habe, habe ich eine identische Kopie der Zieltabelle erstellt, und derselbe Abfrage ausgelöst.
    Mit einer Kopie der Zieltabelle dauerte es erst 1 Sekunde!
    Ich habe alles geprüft. Alle Eigenschaften der Zieltabelle und der Kopie sind identisch.
    Die Daten sind auch identisch. Ein Unterschied war in Indizes-Fragmentierung, der Wert in beiden Fällen war aber unter 1%.
    Die Indizes habe ich trotzdem neugebildet (REBUILD), das hat aber nicht geholfen.

    Laut Ausführungsplan für Aktualisierung der Zieltabelle 100% Kosten sind für "Clustered Index Scan" gebraucht, 0 % für "Clustered Index Update" (Dauer - 1200 Sekunden)
    Laut Ausführungsplan für Aktualisierung der Kopie von Zieltabelle 43% Kosten sind für "Clustered Index Scan" gebraucht, 54 % für "Clustered Index Update" (Dauer - 1 Sekunde)
    Die Ausführungspläne enthalten auch andere Teile noch, die Prozentteil ist aber sehr gering. Die Ausführungspläne sehen unterschiedlich aus.
    Version von SQL Server ist 10.50.4000.
    Hat jemand eine Idee, wo kann die Ursache liegen?

  • #2
    Kann nicht sagen woran das liegt. Wenn da was strubelig ist und an der Configuration kein Unterschied absehbar ist, so Dinge wie Statistiken neu berechnen und Indizes neu erzeugen nicht hilft würde ich testweise mal ein Backup/Restore Zyklus der Datenbank machen und schauen ob sich die Datenbank dann anders verhält.
    Hast du mal von beiden Tabellen Create Scripts erzeugen lassen und die beiden Scripts verglichen?

    Comment


    • #3
      Hallo,

      Tabellen waren identisch laut die Create Scripts.
      Statistiken aktualisieren hat geholfen.

      Comment

      Working...
      X