Eu estive pensando em usar as Visualizações indexadas para aumentar o desempenho em algumas das visualizações mais usadas.
No entanto, as exibições indexadas não oferecem suporte a índices clusterizados não exclusivos, o que contraria um pouco a precedência definida pelo restante da estrutura do banco de dados.
Por exemplo, aqui está uma versão simplificada de algumas de nossas tabelas.
-Groups-
Group ID GroupName
-Users-
UserKey UserName FullName GroupID
Os índices estão em Groups.GroupID (não agrupado) e Users.GroupID (agrupado). A chave de cluster que está no GroupID na tabela Users, como geralmente um intervalo de usuários de um grupo específico, seria recuperada. Obviamente, você teria vários usuários por grupo, portanto esse índice em cluster não é exclusivo.
Isso me deixa um pouco incerto de como seguir essa precedência ao indexar minhas visualizações como este exemplo, pois não posso ter um índice em cluster não exclusivo.
ConsumableID ConsumableVariantID AllowThresholdOverwrite FullPath GroupID ManufacturerID Type ModelID
101 29 1 0.1.2.4. 4 3 3 2
Na realidade, o único valor nessa visualização que sempre seria exclusivo é a coluna ConsumableID, portanto, tenho poucas opções sobre onde colocar meu índice.
Por que os modos de exibição não permitem índices agrupados não exclusivos quando tabelas regulares o fazem?
(GroupID, UserID)
. Não se limite a uma única coluna para a chave. 2 - Imagino que a limitação para uma visualização seja porque esse é um objeto de dados suplementares que precisa ter linhas facilmente vinculadas aos índices NC. Para uma tabela, a chave de IC não exclusiva recebe um int anexado a ela, mas acho que seria mais desafiador com uma exibição indexada, pois ela não é uma tabela real, mas precisa REFLECTAR uma tabela real.