Entity Framework Viele-zu-Viele-Clustered vs. Nonclustered-Index

8

Ich habe ein Entity-Datenmodell mit zwei Entitäten entworfen, zwischen denen eine Beziehung von vielen zu vielen besteht. Wenn ich SQL-Code zum Generieren der Datenbank für dieses Modell automatisch generiere, hat er eine Tabelle (zwei Spalten) generiert, um diese Viele-zu-Viele-Verknüpfung zu verfolgen. Diese Tabelle hat jedoch einen PRIMARY KEY NONCLUSTERED für beide Spalten.

Da ich möchte, dass dies mit SQL Azure funktioniert, das Tabellen mit nur nicht gruppierten Indizes nicht mag, habe ich mich gefragt, ob es eine gute Möglichkeit gibt, der Code-Generierung mitzuteilen, Cluster-Indizes zu generieren. Danke!

    
Jurgen 25.08.2010, 16:08
quelle

1 Antwort

3

Ich habe eine andere Datei mit dem Namen Model.indexes.sql, die Skripte enthält, um zusätzliche Indizes zu erstellen, die über die grundlegenden EF hinausgehen, wie sie für Leistungsoptimierungen verwendet werden.

Obwohl dies nicht ideal ist, habe ich einen Indexdrop hinzugefügt und für jede EF-Assoziation erstellt, um die Non-Clustered-Indizes in indizierte zu konvertieren:

ALTER TABLE [dbo]. [MeineAssoziation] DROP CONSTRAINT [PK_MyAssociation] GEHEN ALTER TABLE [dbo]. [MeineAssoziation] ADD CONSTRAINT [PK_MyAssociation]     PRIMARY KEY CLUSTERED ([Tabelle1_Id], [Tabelle2_Id] ASC); GEHEN

Dies wird nach jedem "Datenbank aus Modell generieren ..." ausgeführt. Ich würde eine elegantere Lösung lieben.

    
CodeGrue 03.10.2011 19:45
quelle