Dr.Verpeilung 10 Geschrieben 1. August 2012 Melden Geschrieben 1. August 2012 Hallo zusammen, zu folgendem Szenario würde ich mich gerne mit euch austauschen: Wir haben bei einem Kunden eine recht große Datenbank mit einer Tabelle von ca. 60 Millionen Rows. Diese Tabelle enthält zwei Indizes: - ID (clustered-index, unique) - Name (non-clustered index, non unique) Die Abfrageperformance ist sehr gut... Das Anzeigen eines Datensatzes dauert weniger als eine halbe Sekunde... Allerdings sind die INSERTS katastrophal. Das Einfügen von 10.000 Datensätzen dauert ca. 250 Sekunden. Wenn ich die Indizes lösche, dauert der INSERT nur noch 20 Sekunden... Also mehr als Faktor 10 schneller. Auch wenn ich aus beiden Indizes einen non-clustered Index mache, ist der Insert langsam. Vermutlich weil die Indizes neu berechnet werden müssen... Oder liegt es am UNIQUE Index? Hat jemand Tipps? Solche Datenmengen können ja nicht das Ende der SQL Performance sein... Viele Grüße Dr.Verpeilung
Dukel 468 Geschrieben 1. August 2012 Melden Geschrieben 1. August 2012 Werden des öfteren 10k Datensätze eingefügt?
Dr.Verpeilung 10 Geschrieben 1. August 2012 Autor Melden Geschrieben 1. August 2012 Ja, 10k Rows sind eher wenig... Einmal im Monat werden zum Rechnungslauf in 2 Tagen rund 1.000.000 Rows angelegt...
Dukel 468 Geschrieben 1. August 2012 Melden Geschrieben 1. August 2012 Das sollte mit einer Zwischentabelle ohne Indexe gehen oder vor dem Insert die Indexe löschen und danach wieder erstellen.
Dr.Verpeilung 10 Geschrieben 1. August 2012 Autor Melden Geschrieben 1. August 2012 Gibt es keine Möglichkeit, das Reorganisieren o. ä. der Indizes zu deaktivieren und dann jede Nacht den Index neu zu erstellen? Quasi das was Zeit kostet auszulagern?
NilsK 3.046 Geschrieben 1. August 2012 Melden Geschrieben 1. August 2012 Moin, man könnte auch versuchen, das Problem auf der I/O-Ebene zu lindern, denn wahrscheinlich ist es nicht die Berechnung, sondern das Schreiben, was die Verzögerung verursacht. Die Indizes sollten in so einem Fall physisch getrennt von den Tabellen liegen, und das Transaction Log braucht hohe Schreib-Performance. Gruß, Nils
Dr.Verpeilung 10 Geschrieben 1. August 2012 Autor Melden Geschrieben 1. August 2012 Aber schreibt er denn den kompletten Index neu?
NilsK 3.046 Geschrieben 1. August 2012 Melden Geschrieben 1. August 2012 Moin, das kommt darauf an. Das Index-Handling ist nicht in ein paar Sätzen erklärt und daher kein geeignetes Thema für ein Forum. Du findest in der Online-Hilfe und im Web eine ganze Menge dazu. Jedenfalls hast du ja offenkundig ein I/O-Problem mit deinen Indizes, und darauf bezog ich mich. Näheres kann man ohne Detailanalyse kaum sagen, und das ist wiederum ebenfalls kein Thema für ein Forum. Gruß, Nils
Dr.Verpeilung 10 Geschrieben 1. August 2012 Autor Melden Geschrieben 1. August 2012 Hmmm, okay. Dass es am Index liegt ist klar, aber wie kommst du darauf, dass es am I/O liegt? Nur weil der INSERT langsam ist?
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden