Woher weiß ich, welche SQL Server 2005-Indexempfehlungen gegebenenfalls implementiert werden müssen?

Translate

Wir sind dabei, eine unserer SQL Server-Instanzen von 2000 auf 2005 zu aktualisieren. Ich habe das Leistungs-Dashboard installiert (http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204-e419218c1efc&displaylang=de) für den Zugriff auf einige hochrangige Berichte. Einer der Berichte zeigt fehlende (empfohlene) Indizes. Ich denke, es basiert auf einer Systemansicht, die vom Abfrageoptimierer verwaltet wird.

Meine Frage ist, wie man am besten bestimmen kann, wann man eine Indexempfehlung erhält. Ich weiß, dass es nicht sinnvoll ist, alle Vorschläge des Optimierers anzuwenden. Ich sehe viele Ratschläge, die im Grunde sagen, dass man den Index ausprobieren und beibehalten soll, wenn sich die Leistung verbessert, und ihn fallen lassen soll, wenn sich die Leistung verschlechtert oder gleich bleibt. Ich frage mich, ob es einen besseren Weg gibt, um die Entscheidung zu treffen, und welche Best Practices zu diesem Thema existieren.

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Das erste, was Sie beachten sollten:

Stellen Sie beim Upgrade von 2000 auf 2005 (mithilfe von Trennen und Anhängen) Folgendes sicher:

  1. Stellen Sie die Kompatibilität auf 90 ein
  2. Erstellen Sie die Indizes neu
  3. Führen Sie die Aktualisierungsstatistik mit vollständigem Scan aus

Wenn Sie dies nicht tun, erhalten Sie suboptimale Pläne.

WENN die Tabelle meistens geschrieben ist, möchten Sie so wenig Indizes wie möglich. WENN die Tabelle für viele Leseabfragen verwendet wird, müssen Sie sicherstellen, dass die WHERE-Klausel von Indizes abgedeckt wird.

Quelle
Stu
Translate

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

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

Quelle
Translate

Sie recherchieren am besten nach den häufigsten Abfragetypen in Ihrer Datenbank und erstellen auf der Grundlage dieser Recherchen Indizes.

Zum Beispiel, wenn es eine Tabelle gibt, in der Website-Treffer gespeichert sind, in die sehr, sehr oft geschrieben, aber kaum gelesen wird. Dann indizieren Sie die Tabelle nicht weg.

Wenn Sie jedoch eine Liste von Benutzern haben, auf die häufiger zugegriffen wird als beschrieben, würde ich zunächst einen Clustered-Index für die Spalte erstellen, auf die am häufigsten zugegriffen wird, normalerweise den Primärschlüssel. Ich würde dann einen Index für häufig gesuchte Spalten erstellen und für diejenigen, die in der Reihenfolge nach Klauseln verwendet werden.

Quelle