2009-04-01 5 views
4

ich eine PK Einschränkung haben - einen Clustered-Index auf zwei Säulen - die ich in dem Prozess bin fallen zu lassen. Der Befehl läuft noch nach einer Stunde. Ich hätte gedacht, dass, wenn ich gerade eine Beschränkung beseitige, die Operation fast augenblicklich wäre. Kann mir jemand erklären, was eigentlich unter der Haube passiert, wenn ich den PK ablege?Was passiert, wenn ich einen gruppierten Primärschlüssel in SQL Drop 2005

Antwort

9

Clustered-Index ist nicht „nur eine Einschränkung“, es ist ein Speicherverfahren.

Wenn Sie es fallen, werden Ihre Daten von Clustered-Storage zu Heap-Speicher ist

Andere Indizes aktualisiert werden statt PRIMARY KEY Werte RID ‚s beziehen neu geordnet.

1

Der Clustered-Index ist die Daten, die die Zeit erklären würde, die es dauert zu laufen.

+0

Können Sie bitte erweitern? Durch das Löschen der pk-Einschränkung für den Clustered Index werden die Daten nicht gelöscht (zumindest habe ich Probleme, wenn dies der Fall ist). Meinst du, dass die Daten neu geordnet werden? –

+0

Der gruppierte Index bestimmt, wie die Daten physisch angeordnet sind. Wenn Sie es ablegen, werden die Daten neu geordnet - aber nicht gelöscht, keine Sorgen. –

+1

Ok. Also warum sollte es das neu arrangieren? Wenn ich keine Bestellung vorgebe, warum macht es dann keinen Sinn, sich selbst zu entscheiden? –

0

Ein "CLUSTERED" -Index wird physikalisch schreiben Sie die Datensätze Ihrer Tabelle in der Reihenfolge auf der Festplatte. Wenn Sie also diesen Index löschen oder ändern, würde SQL Server wahrscheinlich dazu führen, dass Ihre Festplatte defragmentiert (neu geordnet) wird (zumindest der Teil, der die Daten für diese Tabelle enthält).

Bitte beachten Sie, dass diese Antwort nicht perfekt technische ... aber es soll Sie geben Antwort „Oh, das ist ein bisschen was geschieht“, die als gut genug in der Regel weit mehr ist.

Verwandte Themen