Ich arbeite an einem Data Warehouse. Ich habe Tabellen mit bis zu 200 Millionen Datensätzen. Einige dieser Tabellen haben mehr als 20 Indizes (ich kann keinen Grund angeben, warum sie überhaupt erstellt wurden). Dies macht die Verwaltung dieser Indizes zu schmerzhaft und wirkt sich sowohl in Bezug auf die Leistung als auch auf die Laufzeit direkt auf den DWH-Importjob aus.
Wie finde ich die am wenigsten verwendeten Indizes für jede Tabelle? (um sie loszuwerden)
sql-server
ssms
Moslem Ben Dhaou
quelle
quelle
sys.dm_db_index_usage_stats
bietet diese Informationen.Antworten:
Probieren Sie dieses Skript aus. Es hat mir in der Vergangenheit geholfen:
http://blog.sqlauthority.com/2011/01/04/sql-server-2008-unused-index-script-download/
quelle
Ich habe festgestellt, dass das kostenlose BlitzIndex-Skript von Brent Ozar Unlimited (geschrieben von Kendra Little) der beste Weg ist, nicht verwendete Indizes zu isolieren (sowie Indizes, deren Hinzufügen von Vorteil ist, Indizes, die die Arbeit anderer Indizes duplizieren usw.).
http://www.brentozar.com/blitzindex/
Hier erfahren Sie, wie oft ein Index seit dem letzten Zurücksetzen der Statistikanzahl gelesen wurde (oder ein Index erstellt / neu erstellt wurde).
Ich erinnere mich an Brent Ozar, der im Webcast sagte, dass eine gute Faustregel nicht mehr als 10 Indizes für eine häufig gelesene Tabelle ist, 20ish für Tabellen mit statischen / historischen / archivierten Daten, die sich nicht häufig ändern.
Wenn Sie immer noch Probleme mit der Importgeschwindigkeit haben, wird die Datenbank möglicherweise nicht aktiv abgefragt (möglicherweise außerhalb der Bürozeiten). Es kann vorteilhaft sein, den Index zu löschen, die Daten zu importieren und die Indizes erneut anzuwenden. (Die Statistiken werden natürlich zurückgesetzt.) Der Grund dafür ist, dass die Indizes bei jedem Datensatz aktualisiert werden, die Seiten neu angeordnet werden und dies Zeit und Festplatten-E / A erfordert. Das Erstellen der Indizes nach erfordert einen einzelnen Scan der Tabelle.
Abhängig von den Indextypen und den beteiligten Daten müssen Sie möglicherweise nicht mit dieser Regel experimentieren. Indizes sollten regelmäßig überprüft werden, wenn sich Anforderungen / Abfragen ändern.
quelle
Versuche dies:
Raj
quelle
Ich habe das zuletzt verwendete Datum und den Code zum Löschen in Rajs Abfrage hinzugefügt.
quelle