terça-feira, 28 de janeiro de 2014

A importância de um DBA

A importância de um DBA prestando serviços de suporte no Protheus

Muitas empresas por questão de economia ou falta de conhecimento dos gestores / diretoria, acreditam que basta adquirir o ERP que todos os seus problemas serão resolvidos.

Um ERP não tem utilidade alguma sem o banco de dados. O mesmo pode se dizer que um banco de dados sozinho sem uma ferramenta que processe as informações que esta armazenada nele, também não tem muita utilidade.
O banco até funciona sem o ERP mas o ERP sem o banco não funciona.

O Protheus assim como outros ERP processam / inclui / exclui muitos dados e isso acaba por deixar o banco de dados lento, funcionando incorretamente e o mais comum que vejo, é muita volta para extrair um dado muito simples. Devido a sua arquitetura o Protheus não consegue utilizar plenamente todos os recursos do banco de dados. Por mais que o DBA tente, sempre vai ficar alguma coisa que o Protheus não consegue fazer mas, o Dba consegue chegar muito próximo disso.

A maioria das consultorias estão preocupadas em apontar as OS dos seus consultores, custe o que custar. Em uma atualização de release ou virada de versão, pouca análise no banco de dados é feita.

Exemplo, muitas vezes o Protheus após uma atualização de release ou troca de versão, o Protheus como qualquer outro ERP adiciona colunas e insere muitos dados em tabelas de grande volume e consulta de dados. Mas... sera que o banco aguenta ?.

Para ilustrar melhor o que quero dizer, vou explicar melhor como o Protheus trabalha com o banco de dados.

Top Connect

O top connect tem a finalidade de fazer a ligação entre o Protheus e o banco de dados. Ele serve como interpretador de comandos SQL com diversos bancos de dados.
Um comando executado no ORACLE deveria em tese funcionar em um SQL, sem a necessidade de alterar a syntax do comando SQL.
Na prática isso não se sustenta muito mas se for utilizar o Protheus puro sem muita customização pesada, ele funciona perfeitamente.

CHAR X VARCHAR2

Por algum motivo que eu sinceramente desconheço, o Protheus trabalha utilizando o valor total da definição de uma coluna. Exemplo :
Se eu tenho um cadastro de clientes onde existem duas colunas, NOME CHAR(50), ENDERECO CHAR(30), o campo por ser CHAR, utilizando ou não os 50 caracteres, para o banco de dados o total é de 50. Então se um nome possui somente 1 caractere para o banco é 50. Imagine então se em uma atualização do Protheus, um desses compatibilizadores criar 10 novas colunas com o campo CHAR ?.
Agora imagine se o espaço livre em disco do banco for muito pequeno ?.  Provavelmente a operação não sera concluída e o seu ERP juntamente do banco de dados irão parar.

Mas... tem alguma forma de eu transformar um CHAR em VARCHAR2 para economizar espaço no meu banco de dados ?.

A resposta para isso é NÃO !!!!.

O Protheus trabalha com o ADVPL que é um clipper melhorado.
As buscas de um dado no Protheus é feita por DBSEEK. Não tem um WHERE no código. "em alguns tem", mas o Protheus foi construido para trabalhar de uma forma que os campos são CONCATENADOS e ai é que entra o Top connect. O Top connect ira interpretar este DBSEEK em um WHERE na linguagem SQL.

Exemplificando...

SA1->(dbSetOrder(5)) equivale por exemplo á A1_FILIAL + A1_CODIGO + A1_LOJA.
Pode ser que o código da loja possua 1 aé 6 caracteres. Para o Protheus não se perder, ele deixa o A1_CODIGO sempre com 6 digitos. Mesmo deixando a coluna como VARCHAR2, o Protheus iria deixar espaços em branco até completar 6 digitos.

Mas... aonde entra o DBA ?

Na análise, no levantamento de requisitos, na verificação de índices, na desfragmentação das tabelas, na consulta mais otimizada de um select, etc.
Inserir registros loucamente em um banco de dados é rápido e simples, o problema é extrair estas informações de lá.

O DBA, deve ser um profissional capacitado para participar dessas alterações de versões para que não haja nenhum tipo de problema.

Consultar um DBA é um dever da consultoria contratada e uma forma inteligente do cliente se precaver de possíveis consultorias oportunistas.

Algumas respostas que muitos não sabem.
Sera que meu BACKUP esta funcionando ?.
Se eu atualizar o Protheus, quanto isso vai me custar de armazenamento ?
Porque aquele relatório demora tanto ?.

Um DBA decente com pouco conhecimento, tem a obrigação de dar o resultado destas perguntas. Mas não se engane. Não existe uma fórmula mágica que o DBA implanta na empresa e tudo vai sair funcionando as mil maravilhas. Quem dizer isso não é um bom profissional e esta te enganando.

Por isso pense bem antes de fazer certas economias. Consulte sempre um DBA.

Nenhum comentário:

Postar um comentário