SQL Server indexado juego de la visión de puntos de vista con los que no se une a trabajar
Pregunta
¿Alguien tiene experiencia de cuando SQL Server 2008 R2 es capaz de igualar automáticamente vista indizada (también conocido como vistas materializadas) que contienen une a una consulta?
Por ejemplo la vista ??p>
select dbo.Orders.Date, dbo.OrderDetails.ProductID
from dbo.OrderDetails
join dbo.Orders on dbo.OrderDetails.OrderID = dbo.Orders.ID
Puede no ser emparejado automáticamente a la misma consulta exacta. Cuando selecciono directamente desde este punto de vista with (noexpand)
De hecho, me sale un mucho más rápido de consultas plan que realiza un escaneo en el índice agrupado de la vista indizada. ¿Puedo obtener SQL Server para hacer este juego de forma automática? Tengo un buen número de consultas y vistas y no quiero hacer referencia a la vista indizada manualmente cada vez porque estoy utilizando un OR asignador.
Estoy en la edición Enterprise de SQL Server 2008 R2.
Edit: He encontrado la solución. SQL Server 2008 R2 no coincide con vistas indizadas con más de 2 se une de forma automática. Probablemente sería más lento el proceso de optimización demasiado.
Editar 2: Revisión de este 2 años después de la pregunta fue creado por mí, no creo que mi conclusión era correcta. Materializado juego de la visión es un proceso muy frágil, sin reglas claras que he podido encontrar en los últimos años.
Desde luego, la siguiente juegan un papel:
- El número de combinaciones
- La presencia de un predicado
- orden de combinación, tanto en la vista y en la consulta ??li>
Solución
Soy un poco borroso en exactamente lo que su pregunta es; pero creo que esto le dará lo que quiere:
http://msdn.microsoft.com/en-us/library /ms181151.aspx
Hay una gran cantidad de condiciones extrañas y arbitrarias de apariencia de ese límite cuando SQL Server utilizará un índice de vista en una consulta. En esta página les documentos para SQL Server 2008.