it-swarm.com.de

Woher wissen, wann / ob ich zu viele Indizes habe?

Wenn Sie ab und zu Microsoft SQL Server Profiler ausführen, sollten Sie eine Reihe neuer Indizes und Statistiken erstellen ("... 97% geschätzte Verbesserung ...").

Nach meinem Verständnis kann jeder hinzugefügte Index eine SQL-Abfrage SELECT schneller machen, aber auch eine Abfrage UPDATE oder INSERT langsamer, da die Indizes angepasst werden müssen.

Ich frage mich, wann ich "zu viele" Indizes/Statistiken habe.

Vielleicht gibt es keine klare Antwort darauf, aber eine Faustregel.

27
Uwe Keim

Ihr Lastprofil ist der wichtigste Faktor bei der Beantwortung dieser Frage.

  • Wenn Ihre Last leseintensiv ist, möchten Sie, dass Indizes Ihre schwersten oder häufigsten Abfragen erfüllen.

  • Wenn Ihre Last schreibintensiv ist, indizieren Sie sorgfältig. Index, um eine Suche zu befriedigen, die ein UPDATE benötigt, sowie Ihre ein oder zwei teuersten SELECTs.

  • Wenn Ihre Last eine OLAP Eins) ist, indizieren Sie sparsam, da Sie die Zieltabellen sowieso scannen werden.

Woher wissen Sie, dass Sie zu viele Indizes haben?

  • Wenn Sie sehen können, dass einige von ihnen werden nicht verwendet von irgendwelchen Abfragen.

  • Ein häufiges LÖSCHEN, UPDATE oder EINFÜGEN zeigt einen Abfrageplan an, der mehrere teure Indexänderungen umfasst (dh einen nicht gruppierten Index Einfügen , Aktualisieren oder Löschen ). . Verwenden Sie Ihr Urteilsvermögen, um festzustellen, ob die Strafe für diese DML-Anweisungen den Gewinn wert ist, den Sie aus den zu aktualisierenden Indizes erhalten.

24
Nick Chammas

Wenn Sie Indizes haben, die verwaltet werden, aber nie verwendet werden (oder selten verwendet werden), haben Sie zu viele Indizes. Wenn alle Ihre Indizes zur Verbesserung der Benutzerleistung verwendet werden, haben Sie nicht zu viele.

8
mrdenny