2009-10-13 5 views
7

Server: MS Sql Server 2008Warum werden meine Indizes gelöscht, wenn ich das Schema einer Indexansicht ändere?

Wenn ich eine indizierte Sicht erstellen .. und ich dann das Schema der Ansicht ändern, werden alle Index gelöscht.

Es ist so nervig!

Kann jemand erklären, warum das ist? Zuerst dachte ich, dass es daran liegen könnte, dass die Felder, die der Index benötigt, nicht mehr im Schema sind (wir haben es einfach geändert, oder?) ... aber für alle Zeiten, wenn die Indexfelder im Ansichtsschema sind. .. es sollte nur den Index dort verlassen.

sowieso .. rant rant rant ...

nur gehofft, jemand könnte einige Insider-Wissen auf diesem.

Antwort

6

Das Verhalten ist von Entwurf. Aus der Online-Hilfe:

ALTER VIEW kann auf indizierte Ansichten angewendet werden; ALTER VIEW löscht jedoch bedingungslos alle Indizes auf der Ansicht.

Wenn Sie das Schema ändern, muss der gruppierte Index neu erstellt werden. Da alle nicht gruppierten Indizes auf dem gruppierten Index beruhen, müssen sie neu erstellt werden. Wahrscheinlich werden deshalb alle Indizes gelöscht.

+0

Ja. Einverstanden - ich hoffte zu wissen, WARUM das war, von Entwurf. –

+0

Weil die Indizes neu aufgebaut werden müssen. Das automatische Ersetzen der Indizes kann unerwartete Auswirkungen auf die Leistung haben, nehme ich an, wenn Sie über eine Menge Daten sprechen. Daher haben Sie die Möglichkeit, diese sofort oder zu einem anderen Zeitpunkt für andere Benutzer des Systems zu erstellen. –

+0

Ok - das macht ein bisschen Sinn. Ich wünschte, sie könnten sagen: "OK, um alle Indizes neu zu erstellen?" oder etwas ... kewl. Das ist mein Wunsch zu wissen, was vor sich geht. Prost! –