2010-12-14 3 views
0

Plötzlich haben Aktualisierungen in ein paar Tabellen 10 mal langsamer als früher gemacht. Was sind gute Empfehlungen, um die Ursache und Optimierung zu ermitteln? Könnte es sein, dass die Indexierung bestimmter Spalten zu langsamen Aktualisierungen führt? Irgendwelche anderen Empfehlungen?Warum sollte SQL beim Update sehr langsam sein?

Ich denke, wichtiger als Vermutungen wäre Hilfe bei der Ermittlung der Ursache oder Kennzahlen rund um die Leistung.

Gibt es etwas in Fluent NHibernate, mit dem Sie die Ursache von Leistungsproblemen identifizieren können?

Antwort

3

Versuchen Sie zuerst, Ihre Statistiken zu aktualisieren.

Dann schauen Sie in Ihre Indizierung und stellen Sie sicher, dass Sie nur das haben, was Sie brauchen. Zusätzliche Indizes können Inserts definitiv verlangsamen.

Versuchen Sie dann, die Indizes neu zu erstellen.

Ohne das Schema, die Abfrage oder die Menge der Daten zu kennen, ist es schwierig, mehr zu sagen.

+0

+1: Wenn dies nicht ausreicht, werden Ihre Indizes beim Aktualisieren neu berechnet. Je mehr Zeilen Ihre Tabellen haben, desto mehr Zeit benötigen Sie für die Neuberechnung von Indizes. Vielleicht kann die Archivierung ein Ausweg aus dem Problem sein :) – LaGrandMere

+0

was meinst du mit "Aktualisierung deiner Statistiken" ?? Wie erstelle ich Indizes neu – leora

+1

Sie können 'EXEC sp_updatestats' ausführen, um [alle Statistiken zu aktualisieren] (http://msdn.microsoft.com/en-us/library/ms187348.aspx) in der Datenbank. – RedFilter

0

Es lohnt sich, Ihre Wachstumseinstellungen in den Datendateien zu überprüfen. Wenn Sie viele Einfügungen ausführen, die regelmäßige Dateierweiterungen erzwingen, kann dies als Verlangsamung auftreten.

1

Ursachen ...

  • Zu viele Indizes

  • wachsende Anzahl von Datensätzen

  • Bad Index covarage der where-Klausel der Update-Abfrage

  • Locking Probleme aufgrund mehrerer Aktualisierungen (Tabellensperre)

  • Hardware Fragen (Disk-Controller, Netzwerk, etc.)

1

Und wie immer, SQL Profiler auf dem SQL Server ausgeführt wird oben finden Sie eine gute Vorstellung davon, an welcher Stelle Ihre Engpass geben.

+0

gibt es irgendwelche guten Dokumente, wie man SQL Profiler effektiv benutzt – leora

+0

@ooo - sah nie wirklich aus, aber das gab mir ziemlich viele Treffer: http://www.google.co.uk/search?sourceid=chrome&ie=UTF- 8 & q = SQL + Server + Profiler – Paddy

1

1- Prüfen Sie zuerst, wenn die Tabelle nicht über Schlösser

2- Kürzlich implementiert Auslöser

3- Datenbankaktualisierung kann Index neu erstellt benötigen.

4- Einige vordefinierte Jobs sind in Bearbeitung.

5- unbekannter GRÜNDE

einige Abfragen analzer Tools verwenden, um zu sehen, was tatsächlich passiert ist.

0

Überprüfen Sie auch, ob Sie Daten in einem gruppierten Index außerhalb der Reihenfolge einfügen.

Ein Clustered-Index speichert die Daten in der Reihenfolge des Felds. Wenn es sich um eine eindeutige ID handelt, ordnen Sie die Daten für jede Einfügung neu an.

Clustered-Indizes funktionieren besser mit sequenziellen Daten.