2009-10-13 6 views
7

Serveur: MS SQL Server 2008Pourquoi mes index sont-ils supprimés lorsque je modifie le schéma d'une vue Indexée?

Lorsque je crée une vue indexée ... et que je modifie ensuite le schéma de la vue, tous les index sont supprimés.

C'est tellement énervant!

Quelqu'un peut-il expliquer pourquoi c'est? Au début, je pensais que cela pourrait être parce que les champs dont l'index a besoin ne sont plus dans le schéma (nous l'avons juste modifié, non?) .... mais pour toutes les fois où les champs d'index sont dans le schéma de vue. .. il devrait juste laisser l'index là.

.. diatribe diatribe de toute façon diatribe ...

tout en espérant que quelqu'un pourrait avoir une certaine connaissance de l'intérieur sur ce point.

Répondre

6

Le comportement est voulu par la conception. À partir de la documentation en ligne:

ALTER VIEW peut être appliqué aux vues indexées ; cependant, ALTER VIEW supprime de manière inconditionnelle tous les index sur la vue.

Lorsque vous modifiez le schéma, l'index cluster devra être reconstruit. Comme tous les index non groupés s'appuient sur l'index cluster, ils doivent être reconstruits. C'est probablement pourquoi tous les index sont supprimés.

+0

Oui. D'accord - j'espérais savoir POURQUOI c'était, par conception. –

+0

Parce que les index doivent être reconstruits. Le remplacement automatique des index pourrait avoir un impact inattendu sur les performances, à mon avis, si vous parlez de beaucoup de données. Par conséquent, vous avez la possibilité de les recréer immédiatement ou à un moment plus pratique pour les autres utilisateurs du système. –

+0

Ok - cela a un peu de sens. Je souhaite qu'ils puissent dire 'OK pour recréer tous les index à nouveau?' ou quelque chose ... kewl. cela rassemble mon désir de savoir ce qui se passe. à votre santé! –

Questions connexes