2009-10-13 9 views
7

サーバー:MS SQL Server 2008インデックスのビューのスキーマを変更すると、インデックスが削除されるのはなぜですか?

インデックス付きビューを作成すると、ビューのスキーマを変更すると、インデックスがすべて削除されます。

これはうんざりです

これはなぜか説明できますか?最初は、インデックスが必要とするフィールドがスキーマに存在しないため(私たちはそれを変更しましたか?)、インデックス・フィールドがビュー・スキーマ内にあるすべての時代のためであると考えました。それだけでインデックスを残しておくべきです。

とにかく..暴言暴言暴言...

誰かがこの上でいくつかの内部の知識を持っているかもしれません期待して。

答えて

6

動作は仕様です。書籍のオンライン:

変更されたビューは、インデックス付き ビューに適用できます。ただし、ALTER VIEW は、ビューの 上のすべてのインデックスを無条件に削除します。

スキーマを変更すると、クラスタ化インデックスを再構築する必要があります。すべての非クラスタ化インデックスはクラスタ化インデックスに依存するため、再構築する必要があります。それはおそらく、すべてのインデックスが削除された理由です。

+0

はい。合意しました - 私はこれがなぜデザインされたのかを知りたいと思っていました。 –

+0

インデックスを再構築する必要があるためです。自動的にインデックスを置き換えることは、予期せぬパフォーマンスの影響を与える可能性があります。多くのデータについて話しているのであれば、私の推測です。したがって、システムの他のユーザーにとって、すぐに、またはより便利な時間に、それらを再作成することができます。 –

+0

Ok - それは少し意味があります。 「すべてのインデックスを再作成してもよろしいですか?何か... kewl。何が起こっているのかを知りたいと思っています。乾杯! –

関連する問題