Frage

Ich bin Upsizing eine Jet-Datenbank auf SQL Server Express 2008 R2 und bevor dies zu tun, ich bin neu zu bewerten, das Schema (es in den Jahren 1997-98 entwickelt wurde, und der Mann, der es entworfen (dh mich) war so etwas wie ein Trottel!).

Meine Frage bezieht sich auf N: N Join-Tabellen mit einem zweispaltigen zusammengesetzten Schlüsseln. In Jet, schließt sich auf der ersten Spalte einer zweispaltigen Verbund Taste wird der Composite-Index verwenden, sondern schließt sich auf der zweiten Säule nicht, so im Allgemeinen in Jet-Datenbanken mit großen N: N-Tabellen mit ziemlich große Anzahl von Datensätzen verbinden , zusätzlich zu dem Composite-Index einen zweiten, nicht-eindeutigen Index für die zweite Spalte füge ich hinzu.

Ist das eine gute Idee, in SQL Server?

(Vielleicht ist es keine gute Idee, in Jet?)

War es hilfreich?

Lösung

Die gleichen Regeln gelten in SQL Server. Wenn Sie einen Index auf (Columna, columnB) eine Abfrage nur ColumnA oder ColumnA und columnB zusammen, um den Index verwenden, sondern eine Abfrage nur columnB nicht. Wenn es notwendig nur columnB beizutreten eingeschaltet ist, dann sollten Sie auf jeden Fall den Index erstellen.

Andere Tipps

Wenn Sie einen zusammengesetzten Index für Spalten (A,B) nicht suchen, reichen Scan, sortieren oder Aggregatbetrieb für Ausdrücke verwenden können, enthalten nur B. Dies gilt für SQL Server, so wie es für Jet (rot) Fahrer (und ich denke, für skip scan Betrieb verwenden können.

Die Antwort ist also, dass Sie Indizes für (B) allein trennen muss.

Um Ihnen mehr zu helfen, nur ein Tipp, in SQL Server des Managment Studio verwenden, können Sie die Leistung von „Display Geschätzten Ausführungsplan“ bewerten. Gezeigt, wie die indexs und Arbeiten verbinden.

Sie können auch die DTA (Datenbankoptimierungsratgeber) verwenden für weitere Informationen und Optimierung.

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