Avalados por :

Como evitar erros de memória no SAP HANA ao executar declarações de junção completa em tabelas grandes?

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 9 Vistas
0
Cargando...

Prezados especialistas,

Estou enfrentando um erro que provavelmente é causado pelo sistema HANA ficando sem memória.

Não foi possível executar 'criar tabela de colunas temporárias locais # [...] como (selecionar [...] , ...'

SAP DBTech JDBC: [2048]: erro de armazenamento de colunas: erro de tabela de pesquisa: [47] mensagem não encontrada

O erro ocorre ao executar uma declaração de junção completa em duas tabelas bastante grandes.

  • Minha suposição inicial está correta e o erro realmente é causado pelo HANA ficando sem memória?
  • Qualquer ideia de como posso evitar esse erro sem reduzir os dados (por exemplo, adicionando cláusulas "where") seria muito apreciada!

Muito obrigado antecipadamente por suas respostas,

Tobias Müller

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Não faço ideia se isso está relacionado com a memória.

Por que não verificar o arquivo de rastreamento do indexserver?

E publicar o SQL completo certamente não será ruim 😊

- Lars

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Verifique o tamanho do parâmetro MAXIMUM_SIZE_OF_ROW_STORE. Certifique-se de não ter excedido a RAM física, a RAM alocada ou o tamanho do parâmetro. Tenha em mente que bancos de dados colunares são um tipo antigo de banco de dados legado que foi substituído por bancos de dados relacionais há mais de 40 anos devido a esses problemas de memória. Em vez de encontrar dados por identificadores únicos, eles pesquisam através de todos os dados usando colunas em cada execução. O tamanho dos dados em memória pode facilmente exceder a RAM física, a RAM alocada ou o tamanho do parâmetro. A IBM enfrenta esse mesmo problema com DASHDB/DB2 WAREHOUSE. Parece que as lições do passado foram esquecidas e estão se repetindo no presente. Para prevenir o problema, simplesmente planeje que o tamanho da RAM e dos parâmetros seja maior que a maior execução possível ou maior que seus dados multiplicados pelo número de usuários concorrentes. Como o SAP Hana S4 é um banco de dados em memória que utiliza armazenamento de colunas, pode exceder o tamanho dos dados. Você também pode verificar se o banco de dados pode exceder o limite de memória de 32 bits de 2GB, o antigo limite de 40 anos atrás. A maioria das tecnologias legadas tem limitações de memória legadas. Por exemplo, um banco de dados tabular tem um limite de 2 bilhões menos 3 registros. Alguns dos antigos bancos de dados colunares tinham um limite rígido de 2GB para o tamanho da consulta em si ou o retorno dos dados da consulta. Como esse erro é reproduzível em cada banco de dados de armazenamento de colunas, é provável que o HANA tenha a mesma limitação. (CÓDIGO DE ERRO 2048 = o antigo limite de memória de 32 bits de 2GB dos bancos de dados colunares). (Veja a história do banco de dados de Edgar F. Codd e sistemas de bancos de dados compatíveis com ACID) https://help.sap.com/viewer/7c78579ce9b14a669c1f3295b0d8ca16/Cloud/en-US/20a760537519101497e3cfe07b3...

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Ravi,

1) Tentei isso adicionando uma cláusula WHERE bastante restritiva -> funciona bem e confirma minha suposição inicial de que o Hana está ficando sem memória.

2) Não é possível por razões operacionais ?

Tentarei alcançar meu objetivo utilizando uma visualização analítica. Parece promissor neste momento ?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Tobias,

Algumas sugestões:

1) Você poderia tentar com a cláusula WHERE (reduzindo dados) apenas para garantir que não haja erros de sintaxe em seu código e que a tabela temporária local tenha sido criada? Isso também garantirá que o problema provavelmente está relacionado a um problema de memória.

2) Você poderia tentar baixar algumas das outras tabelas/dados/realizar uma fusão delta, em resumo, reduzir a memória consumida e testar o código SEM a cláusula WHERE?

Também seria útil se você pudesse publicar seu código para entendê-lo melhor. Além disso, mencione quantos dados são esperados na instrução SELECT, o tamanho de alguns dados nas tabelas subjacentes usadas na instrução SELECT.

Espero que quando você mencionou FULL join, não esteja se referindo a FULL OUTER join.

Saudações,

Ravi

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?