O Banco de Dados SQL do Azure dá suporte a exibições indexadas? Ele oferece suporte à correspondência automática de exibição indexada sem NOEXPAND
? A resposta depende do tipo de preço?
Não consegui encontrar respostas definitivas para essas perguntas. O guia de diferenças de recursos não menciona exibições indexadas.
A documentação da exibição indexada não contém a palavra "Azure".
Eu estava apenas procurando uma resposta para isso e encontrei uma entrada de blog do MSDN de 2016 que sugere que o Azure SQL oferece suporte à correspondência de exibição indexada e pode (pelo menos em algumas circunstâncias) usar exibições indexadas sem
NOEXPAND
. Do artigo vinculado:A entrada do blog também fornece um exemplo de código que o autor usa para dar suporte à sua afirmação. Não vou reproduzi-lo aqui, mas confira o artigo em: https://blogs.msdn.microsoft.com/azuresqldbsupport/2016/09/04/does-azure-sql-db-support-automatic-indexed-views/
Apenas não fique desapontado quando você tentar afirmar seu pensamento no banco de dados - e ele não concordar!
No momento, tenho uma exibição indexada em que uma consulta complexa (que não menciona a exibição pelo nome) conseguiu descobrir que um índice não clusterizado na exibição funcionaria perfeitamente - fiquei impressionado.
Mas um segundo índice não clusterizado na mesma exibição não pôde ser acionado sem NOEXPAND, embora eu apenas consultasse e SELECT-ed uma única coluna da exibição E mencionasse a exibição pelo nome!
Então, sim, pode funcionar de maneiras impressionantes - mas também pode falhar de maneiras super simples.
Eu li em algum lugar que às vezes 'nem se preocupa em verificar se a exibição indexada é mais eficiente' se determinar que a expansão pode ser boa o suficiente!