none
View Indexada ou materializada RRS feed

  • Pergunta

  • Boa Tarde caros colegas, preciso criar uma view indexada ou materializada no SQL Server.

    Minha visão é bem maior, mas para simplificar vou colocar um exemplo bem simples que também dá erro:

    Create View logradouro
    With SchemaBinding
     As 
    select nmlogradouro, cep from logradouro.dbo.LOGRADOURO

    O problema que vejo aí é pelo fato da visão estar em um banco e a tabela estar em outro. Se fosse uma visão sem a opção 'With SchemaBinding' daria certo.

    Create View logradouro
     As 
    select nmlogradouro, cep from logradouro.dbo.LOGRADOURO

    Ou se executo esse mesmo comando dentro do mesmo banco onde a tabela está não dá problema também.

    Create View logradouro
    With SchemaBinding
     As 
    select nmlogradouro, cep from dbo.LOGRADOURO

    Minha pergunta é: É possível criar uma view com essa opção em bancos diferentes? Tem alguma outra opção que possa usar?

    Grata

    quinta-feira, 27 de abril de 2017 20:10

Respostas

  • Testei José Diz, mas como disse na minha pergunta, a minha visão é bem maior do que aquele exemplo que dei e na minha visão tem 'LEFT JOIN'. Consegui criar a visão, mas quando fui criar o indice, ví que não é permitido o indice em visões com LEFT JOIN. Mas valeu pela dica. Vou tentar achar uma alternativa aqui.

    LaraW,

    Visão materializada não permite o uso de Left Join somente de Inner Join, pois é obrigatório para que o índice que forma a visão realmente retorne dados com base na condição imposta ao Join, isso garante o conceito de view materializada.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 2 de maio de 2017 01:20

Todas as Respostas

  • Deleted
    quinta-feira, 27 de abril de 2017 20:26
  •  Entendi. Vou fazer o teste aqui e ver se funciona. Vou ver como fica a performance também.

    Obrigada!

    quinta-feira, 27 de abril de 2017 20:37
  • Testei José Diz, mas como disse na minha pergunta, a minha visão é bem maior do que aquele exemplo que dei e na minha visão tem 'LEFT JOIN'. Consegui criar a visão, mas quando fui criar o indice, ví que não é permitido o indice em visões com LEFT JOIN. Mas valeu pela dica. Vou tentar achar uma alternativa aqui.
    quinta-feira, 27 de abril de 2017 20:52
  • Deleted
    sexta-feira, 28 de abril de 2017 14:44
  • Testei José Diz, mas como disse na minha pergunta, a minha visão é bem maior do que aquele exemplo que dei e na minha visão tem 'LEFT JOIN'. Consegui criar a visão, mas quando fui criar o indice, ví que não é permitido o indice em visões com LEFT JOIN. Mas valeu pela dica. Vou tentar achar uma alternativa aqui.

    LaraW,

    Visão materializada não permite o uso de Left Join somente de Inner Join, pois é obrigatório para que o índice que forma a visão realmente retorne dados com base na condição imposta ao Join, isso garante o conceito de view materializada.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 2 de maio de 2017 01:20
  • Bom dia,

    Por falta de retorno esta thread esta encerrada !

    Por gentileza, caso necessário abra uma nova thread.

    Atenciosamente,


    Guilherme Macedo S

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 19 de maio de 2017 18:41