2009-10-13 9 views
7

Servidor: Servidor MS Sql 2008¿Por qué se quitan los índices cuando cambio el esquema de una vista indexada?

Cuando creo una vista indizada ... y luego modifico el esquema de la vista, se descarta todo el índice.

¡Es tan molesto!

¿Alguien puede explicar por qué es esto? Al principio, pensé que podría ser porque los campos que el índice requiere ya no están en el esquema (simplemente lo modificamos, ¿no?) ... pero para todos los tiempos cuando los campos de índice están en el esquema de vista. .. debería dejar el índice allí.

de todos modos .. diatriba diatriba diatriba ...

sólo la esperanza de que alguien podría tener algún conocimiento en el interior de este.

Respuesta

6

El comportamiento es por diseño. De Books Online:

ALTER VIEW se puede aplicar al índice vistas; sin embargo, ALTER VIEW deja incondicionalmente todos los índices en la vista.

Al modificar el esquema, el índice agrupado tendrá que ser reconstruido. Dado que todos los índices no agrupados se basan en el índice agrupado, deben reconstruirse. Esa es probablemente la razón por la que se eliminan todos los índices.

+0

Sí. De acuerdo, esperaba saber POR QUÉ fue esto, por diseño. –

+0

Porque los índices tienen que ser reconstruidos. Reemplazar automáticamente los índices podría tener un impacto de rendimiento inesperado, supongo, si se trata de una gran cantidad de datos. Por lo tanto, tiene la opción de volver a crearlos de inmediato o en un momento más conveniente para otros usuarios del sistema. –

+0

Ok, eso tiene un poco de sentido. Me gustaría que pudieran decir 'OK para volver a crear todos los índices'. o algo ... kewl. eso sacia mi deseo de saber lo que está pasando. ¡aclamaciones! –

Cuestiones relacionadas