SQL vistas indizadas: ¿Qué pasa si los datos han cambiado
Pregunta
Me lo undestand vista indizada son pero me pregunto qué sucede exactamente cuando se han cambiado los datos del cuadro (s) subyacente? Se entera de la cache desechado od filas acaba de cambiar?
Tengo consulta muy compleja en varias mesas (+5), que se utiliza para buscar hoteles disponibilidad (+ 100k registros) y en mi humilde opinión la vista indizada podría mejora el rendimiento significativamente. Pero los datos (pocas filas) se cambian con frecuencia (habitación fue vendido, habitaciones libres alterados en administrador atc.) Y si el punto de vista sería reconstruir cada momento en una sola fila fue cambiado, serían cuello de botella para mi aplicación.
O alguna idea de cómo "caché" consultas muy Coplex?
Gracias.
Solución
A partir de la documentación de TechNet:
A diferencia de los índices normales, una sola fila insertar en cualquiera de los países participantes tablas pueden causar múltiples cambios fila en una vista indizada. Esto es porque la fila única puede unirse a múltiples filas de otra tabla. Lo mismo es cierto para las actualizaciones y eliminaciones. En consecuencia, el mantenimiento de una vista indizada puede ser más caro que el mantenimiento de un índice sobre la mesa.
Fuente:
http://technet.microsoft.com/en-us /library/cc917715.aspx#XSLTsection124121120120
es decir. suena como si las filas se actualizan cuando sea pertinente, sin necesidad de tener que actualizar / recrear la vista en su totalidad.
Otros consejos
Estoy asumiendo que usted está ejecutando SQL Server. 100k + filas no es mucho. Si se está uniendo a 5 Ish mesas Yo sugeriría que se aseguró que hay que cubren índices en las columnas que se están uniendo antes de considerar la implementación de las vistas indizadas. Utilizar el analizador de consultas para encontrar el cuello de la botella en su consulta directamente. Si usted está teniendo problemas de rendimiento en las mesas, así que hay pequeños recorridos de tablas probablemente desagradables en ese país.