on 08-22-2008 3:28 PM
Criei uma tabela de usuário e dentro dela criei 10 campos alfanuméricos com tamanho de 10 posições. Ao executar a procedure SP_HELP no SQL Server para verificar o tamanho dos campos na estrutura da tabela verifiquei que o tamanho foi definido como -1, ou seja, o tamanho do campo não foi corretamente informado pelo B1 na criação da tabela e o SQL Server 2005 acabou por assumir como padrão o tamanho máximo de 4096 bytes.
Se olharmos apenas para a definição da tabela e dos campos no B1 os valores são apresentados corretamente, mas não correspondem aos valores definidos nos metadados do banco. Isso é extremamente problemático pois derruba violentamente a performance das consultas nas tabelas de usuário.
Existe algum workaround que a gente pode utilizar para resolver este problema?
Testamos a criação de tabelas e campos de usuários na versão 2005B, rodando no SQL Server 2005 com as PLs 40, 41 e 42 e nessas três configurações o problema ocorreu sempre da mesma forma, como descrito acima.
Sei que podemos forçar a correção da estrutura de dados das tabelas na mão, pelo comando ALTER TABLE do SQL Server, mas isso será apontado pelo Early Watch? Corremos o risco de perder a garantia do produto?
Qualquer informação que ajudar a solucionar este problema será muito bem aceita.
[]'s
Edited by: Rui Pereira on Nov 7, 2008 9:27 AM
Gabriel fiz o teste aqui para você e infelizmente comigo não ocorreu o erro, estou usando o PL 42 e a criação ocorreu sem problema.
Att,
Vitor Avila (Flag SAP Solution Factory)
Edited by: Rui Pereira on Oct 23, 2008 3:05 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Gabriel, caso não tenha resolvido ainda como foi criada as tabelas? Você tem o XML para postar.
Att,
Vitor Avila (Flag SAP Solution Factory)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Oi Vitor,
O problema ainda não foi resolvido. Abrimos um chamado na SAP pois entendemos que este comportamento do SBO não é o correto uma vez que ao definir campos alfanuméricos com o maior tamanho possível, as estruturas (metadados) acabam ficando gigantes e isso joga a performance dos add-ons e consultas formatadas pra baixo.
Você pode reproduzir o problema criando UDFs em tabelas standard ou em UDTs pelo próprio B1. Não precisa criar os campos pelo SDK para que o problema ocorra não. Basta definir o campo do tipo Alfanumérico que, ao executar a SP_HELP no SQL Server você verá a estrutura do seu campo mais ou menos assim:
CAMPO NVARCHAR(-1)
Na documentação do SQL Server é explicado que o -1 representa a capacidade máxima de armazenamento do campo.
Este problema só acontece no SQL Server 2005. No SQL Server 2000 o B1 se comporta bem.
Edited by: Gabriel Izar on Oct 8, 2008 3:31 PM
User | Count |
---|---|
105 | |
8 | |
6 | |
6 | |
5 | |
5 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.