2008-08-06 2 views
6

Wir aktualisieren derzeit eine unserer SQL Server-Instanzen von 2000 bis 2005. Ich installierte das Leistungsdashboard (http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204-e419218c1efc&displaylang=en) für den Zugriff auf einige Berichte auf hoher Ebene. Einer der Berichte enthält fehlende (empfohlene) Indizes. Ich denke, es basiert auf einer Systemansicht, die vom Abfrageoptimierer verwaltet wird.Woher weiß ich, welche SQL Server 2005-Indexempfehlungen ggf. implementiert werden sollen?

Meine Frage ist, was ist der beste Weg zu bestimmen, wann eine Indexempfehlung zu nehmen. Ich weiß, dass es nicht sinnvoll ist, alle Vorschläge des Optimierers zu übernehmen. Ich sehe eine Menge Ratschläge, die im Grunde sagen, den Index zu versuchen und ihn zu behalten, wenn sich die Leistung verbessert und ihn fallen zu lassen, wenn die Leistung abnimmt oder gleich bleibt. Ich frage mich, ob es einen besseren Weg gibt, die Entscheidung zu treffen und welche Best Practices zu diesem Thema existieren.

Antwort

3

Das erste, was zu beachten:

Wenn Sie 2000-2005 Upgrade (durch Trennen und Anfügen) stellen Sie sicher, dass Sie:

  1. Set compability bis 90
  2. die Indizes neu aufbauen
  3. Run update statistics mit Scan

Wenn Sie dies nicht tun Sie suboptima bekommen Ich plane.

Wenn die Tabelle hauptsächlich geschrieben wird, möchten Sie so wenige Indizes wie möglich haben Wenn die Tabelle für viele Leseabfragen verwendet wird, müssen Sie sicherstellen, dass die WHERE-Klausel durch Indizes abgedeckt ist.

0

Ihre beste Untersuchung der häufigsten Art von Abfragen, die in Ihrer Datenbank passieren und Erstellen von Indizes auf der Grundlage dieser Forschung.

Zum Beispiel, wenn es eine Tabelle gibt, die Webseitentreffer speichert, die sehr sehr oft geschrieben werden, aber kaum gelesen werden. Dann indexieren Sie die Tabelle nicht weg.

Wenn Sie jedoch eine Liste von Benutzern haben, auf die häufiger zugegriffen wird als geschrieben wird, würde ich zuerst einen Clustered-Index für die Spalte erstellen, auf die am häufigsten zugegriffen wird, normalerweise der Primärschlüssel. Ich würde dann einen Index für allgemeine Suchspalten erstellen und solche, die in by by clauses verwendet werden.

3

Der Ratschlag, den Sie haben, ist richtig. Probieren Sie sie alle nacheinander aus.

Es gibt KEINEN Ersatz für Tests, wenn es um die Leistung geht. Wenn Sie es nicht beweisen, haben Sie nichts getan.

Verwandte Themen