Nachdem ich die Fragen und Antworten dieser Website zu Indizes gelesen hatte, kam mir eine Frage in den Sinn.
Was ist, wenn eine Zeitdimensionstabelle verwendet wird, wobei die niedrigere Granularität der Tag ist? Wo soll man die Indizes platzieren?
Randy Melder in der Frage: Was bedeutet "Index" für RDBMS? sagte :
Stellen Sie sich einen Index als "Inhaltsverzeichnis" vor ... das ist eine geordnete Liste von Zeigern auf Positionen in einer Datei, auch Offsets genannt
Im Fall der Zeitdimension können die meisten Datenrecherchen entweder für einen bestimmten Tag, eine bestimmte Woche, einen bestimmten Monat oder ein bestimmtes Quartal durchgeführt werden, wenn der Zeitplan den ganzen Tag für ein bestimmtes Jahr speichert .
Meine Frage ist: Sollte man Indizes für all diese Felder setzen?
Der Tag soll einzigartig sein, daher verstehe ich für diesen Tag die Verwendung von Indizes perfekt. Aber eine Wochen-ID hat 7 Vorkommen , eine Monats-ID hat 30/31 Vorkommen , eine Viertel-ID hat mehr oder weniger 120 Vorkommen .
- Sollte man noch Indizes für diese Felder setzen?
- Wird es noch nützlich sein?
Ich frage Sie das, weil David Spillett in derselben Frage sagte:
Das Hinzufügen zu vieler Indizes kann natürlich eine schlechte Optimierung sein, da der zusätzliche Speicherplatz zum Speichern der Indizes (und die E / A-Last zum Verwalten dieser Indizes, wenn Ihre Datenbank viele Schreibvorgänge sieht) möglicherweise ein schlimmeres Problem darstellt als die etwas weniger optimalen Leseabfragen , übertreibe es also nicht.
Was wären die besten Überlegungen für den Fall der Zeitdimension?