Question

Est-ce que quelqu'un a l'expérience quand SQL Server 2008 R2 est en mesure de faire correspondre automatiquement vue indexée (également connu sous le nom des vues matérialisées) qui contiennent joint à une requête?

Par exemple, la vue

select dbo.Orders.Date, dbo.OrderDetails.ProductID
from dbo.OrderDetails
join dbo.Orders on dbo.OrderDetails.OrderID = dbo.Orders.ID

Ne peut pas être automatiquement adapté à la même requête exacte. Lorsque je sélectionne directement à partir de ce point de vue with (noexpand) je reçois effectivement beaucoup plus rapide plan de requête qui effectue une analyse sur l'index ordonné en clusters de la vue indexée. Puis-je obtenir SQL Server pour le faire automatiquement correspondant? J'ai assez peu de requêtes et de vues et je ne veux pas faire référence à la vue indexée manuellement à chaque fois parce que je suis un OU Mapper utilise.

Je suis sur l'édition d'entreprise de SQL Server 2008 R2.

Edit: J'ai trouvé la solution. SQL Server 2008 R2 ne correspond pas à des vues indexées avec plus de 2 se connecte automatiquement. Il serait probablement trop ralentir le processus d'optimisation.

Edit 2: Revoir ce 2 ans après que la question a été créé par moi, je ne pense pas que ma conclusion était correcte. Matérialisée correspondance de vues est un processus très fragile sans règles claires que je pouvais trouver au fil des ans.

Certes, les éléments suivants jouent un rôle:

  • Nombre de jointures
  • Présence d'un prédicat
  • Inscrivez-vous pour, à la fois dans la vue et dans la requête
Était-ce utile?

La solution

Je suis un peu flou sur exactement ce que votre question est; mais je pense que cela vous donnera ce que vous voulez:

http://msdn.microsoft.com/en-us/library /ms181151.aspx

Il y a beaucoup d'étranges conditions semblant arbitraires qui limite lorsque SQL Server utilisera un index de vue dans une requête. Ce document de page pour eux SQL Server 2008.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top