Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Após migração do SSAS 2014 para o SSAS 2016 consulta consome toda memoria do servidor

Estamos migrando o SSAS 2014 para o SSAS 2016, a consulta descrita abaixo quando executada no SSAS 2014 através do Power BI é concluída em poucos segundos, porém ao tentar executar a mesma consulta no SSAS 2016 toda a memoria do servidor do Analysis é consumida e a consulta não é concluída, o que esta inviabilizando a atualização do SSAS 2014 para o SSAS 2016.

 

Abrimos o chamado: 117032215494513 na Microsoft e fomos informados que há algumas RFCs (request for comments) que envolvem ambos os times de produtos (SSAS e PBI) e a explicação é a seguinte:

O SQL Server Analysis Services 2014 tinha um comportamento otimista sobre a habilidade para aplicar alguns filtros em construções “multi-level nested” no DAXMD, como neste caso, que são geradas operações aninhadas. Mesmo mais rápido, esse comportamento pode levar a potenciais problemas (alguns casos fora da curva) em que o resultado retornado pode ser incorreto. Esse comportamento foi trabalhado no SQL Server 2016 e como resultado é necessário materializar resultados intermediários dos cálculos, o que pode gerar dataset muito grandes, elevando o consumo de memória e em alguns casos, gerando exceções out-of-memory.

 

A RFC referente a este problema é a 9229662

 

Fomos aconselhados pelo engenheiro Luciano Moreira a tentar obter ajuda para reescrever a consulta para que este problema seja contornado, vocês poderiam nos ajudar?

 

Consulta:

 

EVALUATE

  CALCULATETABLE(

    CALCULATETABLE(

      ROW(

        "Bruto_Fomento", 'Medidas'[Bruto Fomento]

      ),

      KEEPFILTERS(

        GENERATE(

          KEEPFILTERS(

            GENERATE(

              KEEPFILTERS(

                GENERATE(

                  KEEPFILTERS(

                    GENERATE(

                      KEEPFILTERS(

                        GENERATE(

                          KEEPFILTERS(

                            GENERATE(

                              KEEPFILTERS(

                                GENERATE(

                                  KEEPFILTERS(

                                    GENERATE(

                                      KEEPFILTERS(

                                        GENERATE(

                                          KEEPFILTERS(

                                            GENERATE(

                                              KEEPFILTERS(

                                                GENERATE(

                                                  KEEPFILTERS(

                                                    GENERATE(

                                                      KEEPFILTERS(

                                                        GENERATE(

                                                          KEEPFILTERS(

                                                            GENERATE(

                                                              KEEPFILTERS(

                                                                GENERATE(

                                                                  KEEPFILTERS(

                                                                    GENERATE(

                                                                      KEEPFILTERS(

                                                                        GENERATE(

                                                                          KEEPFILTERS(

                                                                            GENERATE(

                                                                              KEEPFILTERS(

                                                                                GENERATE(

                                                                                  KEEPFILTERS(

                                                                                    GENERATE(

                                                                                      KEEPFILTERS(VALUES('Carteira'[Carteira.Key0])),

                                                                                      CALCULATETABLE(VALUES('Cedente'[CNPJ CPF Cedente]))

                                                                                    )

                                                                                  ),

                                                                                  CALCULATETABLE(VALUES('Cedente'[Grupo Economico]))

                                                                                )

                                                                              ),

                                                                              CALCULATETABLE(VALUES('Cedente'[Nome Cedente.Key0]))

                                                                            )

                                                                          ),

                                                                          CALCULATETABLE(VALUES('Cedente'[Status RJ]))

                                                                        )

                                                                      ),

                                                                      CALCULATETABLE(VALUES('Comercial'[Assistente]))

                                                                    )

                                                                  ),

                                                                  CALCULATETABLE(VALUES('Comercial'[Corretor]))

                                                                )

                                                              ),

                                                              CALCULATETABLE(VALUES('Comercial'[Plataforma]))

                                                            )

                                                          ),

                                                          CALCULATETABLE(VALUES('Data'[Data.Key0]))

                                                        )

                                                      ),

                                                      CALCULATETABLE(VALUES('Modalidade'[Modalidade.Key0]))

                                                    )

                                                  ),

                                                  CALCULATETABLE(VALUES('Modalidade'[Produto.UniqueName]))

                                                )

                                              ),

                                              CALCULATETABLE(VALUES('Operação'[Operação.Key0]))

                                            )

                                          ),

                                          CALCULATETABLE(VALUES('Tipo Documento'[Tipo Documento.Key0]))

                                        )

                                      ),

                                      CALCULATETABLE(VALUES('Tipo Operação'[Tipo Operação.Key0]))

                                    )

                                  ),

                                  CALCULATETABLE(VALUES('Veiculo'[Veiculo.Key0]))

                                )

                              ),

                              CALCULATETABLE(VALUES('Veiculo'[Sigla Veiculo.UniqueName]))

                            )

                          ),

                          CALCULATETABLE(VALUES('Conta Grafica'[Codigo Conta Grafica.Key0]))

                        )

                      ),

                      CALCULATETABLE(VALUES('Tipo Documento'[Sigla Tipo Documento]))

                    )

                  ),

                  CALCULATETABLE(VALUES('Operação'[Spot]))

                )

 

Status: New
Comments
v-haibl-msft
Employee

@duduardo1

 

It seems that you have already opened a support ticket, and several senior engineers have given support to you. If you want to get another workaround for it, you can contact with the ticket support engineer again. They should be more more professional.

 

Best Regards,
Herbert