Lassen Sie mich vorab sagen, dass ich nicht die vollständige Kontrolle über mein DB-Design habe, sodass viele Aspekte des aktuellen Systems für die Zwecke dieses Szenarios nicht geändert werden können .
Kommentare darüber, wie wir Aspekte des Designs überdenken sollten, sind wahrscheinlich korrekt, aber nicht hilfreich :)
Ich habe eine sehr große Tabelle, ungefähr 150 Felder breit und ungefähr 600m Reihen, die eine große Anzahl von Prozessen antreibt. Dies befindet sich in einer Data-Warehouse-Situation, sodass wir keine Aktualisierungen / Einfügungen außerhalb des geplanten Ladeprozesses haben und daher stark indiziert sind.
Es wurde die Entscheidung getroffen, diese Tabelle zu partitionieren, und ich habe einige Bedenken hinsichtlich der Indizierung einer partitionierten Tabelle. Ich habe keine Erfahrung mit Partitionierung, daher sind alle Eingaben oder Links willkommen. Ich konnte auf BOL oder msdn nicht genau finden, wonach ich suche.
Derzeit gruppieren wir uns auf einem Feld, das wir aufrufen. IncidentKey
Dies ist ein varchar(50)
und kein eindeutiges Feld - wir könnten zwischen 1 und 100 Datensätze mit demselben haben IK
(bitte keine Kommentare). Wir erhalten häufig neue Daten in alten IncidentKey
Datensätzen, sodass diese auch nicht sequenziell sind.
Ich verstehe, dass ich mein Partitionsfeld IncidentDate
in meinen gruppierten Indexschlüssel aufnehmen muss, damit die Partition ordnungsgemäß funktioniert. Ich denke es wäre IncidentKey, IncidentDate
.
Die Frage ist, wie die Mechanik eines Clustered-Index für einen Schlüssel mit zwei Teilen in einer partitionierten Tabelle funktioniert, wenn ein Datensatz in einer "neuen" Partition vor einem Datensatz in einer "alten" Partition im Clustered-Index stehen soll.
Zum Beispiel habe ich 5 Datensätze:
IncidentKey Date
ABC123 1/1/2010
ABC123 7/1/2010
ABC123 1/1/2011
XYZ999 1/1/2010
XYZ999 7/1/2010
Wenn ich einen neuen Datensatz bekommen für ABC123, 2/1/2011
sie müssen in der Clustered - Index sein VOR XYZ999, 1/1/2010
. Wie funktioniert das?
Ich gehe von Fragmentierung und Zeigern aus, kann jedoch keine Informationen zum physischen Speicher und zur Konfiguration von nicht partitionierten Clustered-Indizes für partitionierte Tabellen mit zweigeteilten Schlüsseln finden.