Viacheslav
Neuer Benutzer
- Beiträge
- 2
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?
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?