sql >> Base de Datos >  >> RDS >> Sqlserver

Vista indexada frente a índices en la tabla

Una vista indexada causará los mismos problemas que un índice en la columna, porque las vistas indexadas requieren with schemabinding , que lo vinculan a la tabla directamente, lo que le impide cambiar/alterar el esquema de esa tabla de cualquier manera o forma. Esto incluye cambiar el tamaño de una columna (por ejemplo, desde varchar(50) a varchar(255) ), cambiar el tipo de datos de una columna (por ejemplo, de double a decimal(18,5) ), etc. Los he visto causar muchos dolores de cabeza inesperados debido a este hecho.

Mi sugerencia es configurar un procedimiento almacenado o un paquete SSIS que creará una tabla de informes para usted que se ejecuta cada hora más o menos. De esta manera, puede indexar el infierno siempre amoroso y disfrutar de todos los beneficios de rendimiento que produce. Me da vergüenza informar desde un sistema en vivo y en progreso. De hecho, todavía tengo que ver el caso en el que esto es necesario. Para fines de generación de informes, la información de una hora de antigüedad suele ser absolutamente suficiente para realizar el trabajo.