Woher weiß ich, welche Indexempfehlungen für SQL Server 2005 ich ggf. umsetzen muss?

StackOverflow https://stackoverflow.com/questions/3975

  •  08-06-2019
  •  | 
  •  

Frage

Wir sind gerade 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=en) für den Zugriff auf 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 annimmt.Ich weiß, dass es keinen Sinn macht, alle Vorschläge des Optimierers anzuwenden.Ich sehe viele Ratschläge, die im Wesentlichen darauf hinauslaufen, den Index auszuprobieren und ihn bei einer Leistungsverbesserung beizubehalten und ihn zu löschen, wenn die Leistung nachlässt oder gleich bleibt.Ich frage mich, ob es einen besseren Weg gibt, die Entscheidung zu treffen, und welche Best Practices es zu diesem Thema gibt.

War es hilfreich?

Lösung

Das Erste, was Sie beachten sollten:

Wenn Sie ein Upgrade von 2000 auf 2005 durchführen (durch Trennen und Anhängen), stellen Sie sicher, dass Sie:

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

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

Wenn die Tabelle meist geschrieben ist, möchten Sie so wenige Indizes wie möglich, wenn die Tabelle für viele Leseanfragen verwendet wird, müssen Sie sicherstellen, dass die Where -Klausel mit Indizes abgedeckt wird.

Andere Tipps

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

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

Am besten recherchieren Sie die häufigsten Arten von Abfragen, die in Ihrer Datenbank auftreten, und erstellen auf der Grundlage dieser Recherche Indizes.

Zum Beispiel, wenn es eine Tabelle gibt, in der Website-Zugriffe 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 geschrieben wird, dann würde ich zunächst 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 häufig durchsuchte Spalten und solche erstellen, die in order by-Klauseln verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top