Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde,
estou com muita dificuldade em resolver um problema de acesso, tenho um modelo em star schema da seguinte maneira:
O acesso é feito com 3 critérios da seguinte maneira:
1) O usuário devera ver apenas quem esta abaixo dele na hierarquia e ver ele mesmo, então um supervisor veria vendedores e um vendedor veria apenas a si mesmo, esse relacionamento estou fazendo atualmente pela ligação entre as tabelas dim_responsaveis e permissões.
2) O usuário terá acesso a algum canal, pode ser um ou mais de um, para fazer essa redução eu uso a tabela dim_canal de venda e canais_permissao.
3) O usuário pode ver todos os grupos de produto ou apenas um, essa redução esta sendo feita pela relação entre as tabelas DIM_descricao_produto e grupo_cliente_redutor.
Essa forma esta causando uma sobrecarga no momento que o arquivo é carregado no servidor, o servidor cai e o uso da cpu fica altíssimo, andei procurando como fazer essa section com mais de um campo e encontrei essa postagem:
Data Reduction Using Multiple Fields
Resumidamente ele diz que deve haver apenas um campo redutor e esse campo devera conter a concatenação dos campos que devem reduzir os dados.
Não estou sabendo fazer isso no meu modelo, não consigo localizar uma dimensão onde consiga concatenar o representante, canal e grupo de produto de forma que cada linha tenha uma unica combinação para esses valores e tenha todas as possibilidades desses 3 campos na tabela.
Alguém já passou por um problema parecido com um modelo em star schema?
Flavio, o ideal é que a redução sempre ocorra em registros de apenas uma tabela. Isso significa que você deve organizar os seus dados para que tudo o que precisa ser reduzido esteja em apenas uma tabela, neste caso a LinkTable é ideal.
Olhei o seu modelo e você já possui uma link table, porém a link table não contém os campos em que esta realizando a redução. A solução esta simples (simples, não fácil), basta adicionar os três campos de redução em sua link table para que a tabela de section access faça a ligação em sua linktable.
Flavio, o ideal é que a redução sempre ocorra em registros de apenas uma tabela. Isso significa que você deve organizar os seus dados para que tudo o que precisa ser reduzido esteja em apenas uma tabela, neste caso a LinkTable é ideal.
Olhei o seu modelo e você já possui uma link table, porém a link table não contém os campos em que esta realizando a redução. A solução esta simples (simples, não fácil), basta adicionar os três campos de redução em sua link table para que a tabela de section access faça a ligação em sua linktable.
Só um ponto importante: eu acho que o seu problema de performance pode não ser devido a segurança. Para se ter certeza, deixe a app sem segurança e veja se a lentidão continua.
Estou tendo dificuldade de identificar o problema, eu baixei o Optimizer.qvw mas também estou tendo dificuldade de interpretar o resultado.
Se eu postar o resultado desse arquivo você poderia me ajudar a entender onde esta o problema?
Yuri,
fiz uma analise com o DocumentAnalyzer.qvw, não sei interpretar tão bem o arquivo, você poderia me ajudar a analisar os resultados?
Me envie esse qvw
segue o qvw
Flavio, continuamos esse entendimento no outro post: Alto consumo de CPU
Fiz isso e funcionou perfeitamente, muito obrigado.
Yuri, bom dia. E se no caso eu queira que o section access impeça a visualização de toda uma tab? Eu criei o USERID baseado nos nomes que acessarão e fiz um Section Aplication USERID, Departamento sendo apenas dois registros DEPTO1 e OUTROS. Criei uma variável para mostrar a TAB de forma condicional, só não sei jogar para a variável o valor DEPTO1 quando os autorizados logam e OUTROS quando os não autorizados logam. Como é a melhor forma de fazer isso? Obrigado.