Você está na página 1de 25

Turbinando o

Protheus

dicas e truques para


você turbinar o seu
Protheus
INTRODUÇÃO
Manter um sistema como o Protheus funcionando bem, muitas vezes é bastante desafiador, são
muitos aplicativos envolvidos, sistema operacional, bancos de dados, hardware e por aí vai, fora as
complicações inerentes ao próprio sistema mesmo.

Muitas vezes o analista responsável por manter toda essa estrutura não tem todas as informações
quanto a melhoria de performance e melhores práticas para uso do sistema e se depara com
lentidões, travamentos, problemas em backup e outras questões que ocorrem no dia a dia.

Fiz este e-book pensando em fazer um apanhado das melhores práticas e itens do Protheus que
podem ser turbinados para sua estrutura ficar tinindo, funcionando de forma rápida e segura.

Muitas vezes nem sabemos que existem certas funcionalidades, e às vezes sabemos que existem mas
não sabemos o nome, daí é difícil até de pesquisar soluções ou tutoriais pois não sabemos nem o
que estamos procurando.

O objetivo é fazer uma explanação sobre cada ponto que pode ser turbinado, e você já pode
colocar em prática o que se adequar a sua realidade. Não detalhei como fazer a instalação e
configuração de cada item tin-tin por tin-tin, mas as informações que vc vai receber neste e-book
vão abrir seus olhos para muita coisa que deve ser otimizada no Protheus e não é muito divulgada
nem pela TOTVS nem pelos especialistas em geral.
BANCO
de

dados
O PROTHEUS SUPORTA
DIVERSOS BANCOS DE
DADOS:

Mas tem alguns
procedimentos que podem
ser feitos para melhorar a
performance do seu SGBD
a
im
óx
r
a p a
 n gin
eja pá
*Sempre consulte um DBA
antes de fazer qualquer ação no SGBD
V
SEPARAR
BASES DE DADOS
O banco de dados consome muita comunicação com o HD, por conta da grande quantidade de
consultas e gravações de dados que são feitos a cada segundo, e uma das formas de melhorar isto é
separar os bancos de dados que você tem em computadores diferentes.

Por exemplo, vamos dizer que você tenha o banco de dados principal, o banco das NF-e (TSS) e o
banco do audit trail. Tente colocá-los em instâncias diferentes e se possível em máquinas diferentes.
Se vc não conseguir colocar em máquinas diferentes, coloque pelo menos em HDs diferentes, isto já
vai auxiliar muito na performance do sistema.

Pela mesma razão acima, é interessante separar os arquivos de log dos arquivos de banco. Nos
arquivos de log ficam todos os comandos executados contra o banco de dados, então, sempre que
há uma inclusão de clientes (por exemplo) o sistema grava a informação no log e também no
banco, isto gera concorrência de escrita se for utilizado em um só HD, então, quando for possível,
faça esta separação.
BACKUP
Configure seu backup para ser copiado por uma placa de rede
dedicada, pra não disputar com o tráfego do sistema o envio de
dados.

Backup é algo que pode te sabotar durante o uso do sistema, se


vc tem muitos dados e faz um backup no meio do dia isto pode
carregar a sua placa de rede e dar lentidão no sistema.

Muita gente, para resolver esta questão, faz backup apenas a


noite... mas esta também é uma estratégia arriscada, o ideal é
fazer diversos backups incrementais durante o dia para ter mais
segurança em caso de desastres.
ÍNDICES
NO SGBD
Avalie a criação de novos índices nos bancos do Protheus,
conforme sugeridos pelo DBA ou pelo próprio SGBD, isto não é
diretamente incentivado pela TOTVS mas pode gerar ganhos de
segundos em cada transação, ou seja, pode fazer toda a diferença
na performance de algumas rotinas.

Faça uma varredura nas suas tabelas (O DBA pode te auxiliar


nisso) para ver se há índices desnecessários no banco de dados, o
número alto de índices pode facilitar a recuperação de dados, mas
deixa lenta as inclusões e alterações, pois todos os índices devem
ser atualizados a cada nova inclusão/alteração/exclusão.
STORED PROCEDURE
Stored procedures são como programas que você
coloca diretamente no banco de dados.

Um exemplo de stored procedure no Protheus é a


stored procedure de recálculo de custo médio.

Então, se está lento quando você recalcula o custo


médio no sistema, avalie fazer a instalação das
stored procedures do Protheus, o ganho de tempo
(performance) é enorme! (Há diversas outras
rotinas com esta funcionalidade de stored
procedure disponível)

O ganho é grande pois a rotina vai rodar


diretamente no banco de dados, em vez de passar
pelo protheus, dicionário de dados, ctree, odbc, top
connect e etc, o ganho de performance é sempre
muito bom.
Use o
BROKER em
conexões
lentas

Sabe aquelas situações onde o usuário acessa o sistema fora da empresa, pela Internet e
o sistema cai a toda hora? Isso ocorre muito em empresas de varejo onde existem lojas
em cidades com Internet muito ruim.

O Broker alivia este problema, o broker segura a conexão (não deixa dar erro de rede)
por x segundos (configuráveis), então, quando a rede instabilizar o sistema não vai sair
do ar, ele dá uma 'travada' na tela e quando a rede voltar o usuário continua de onde
estava. Não é a melhor solução de todas mas já ajuda bastante!
MÁQUINA VIRTUAL
É ótimo utilizar máquinas virtuais, elas facilitam muito
a escalabilidade e maior aproveitamento dos seus ativos
de hardware e software.

Mas, cuidado com máquinas virtuais, dependendo da


configuração que você utilizar, o sistema pode ser muito
prejudicado, principalmente pelo compartilhamento de
HD e processador, há casos de performances sofríveis
em clientes TOTVS que são resolvidas rapidamente só
em sair da máquina virtual e colocar o sistema em
máquinas físicas.

Então, cuidado com máquinas virtuais.


C-TREE
SERVER
O Ctree é um aplicativo da Faircom
que é utilizado para gerenciar os
arquivos de dicionários de dados do
Protheus. O uso dele é opcional
quando você tem poucos usuários
no seu sistema ( até 10 ) , mas é
indicado quando a estrutura é um
pouco maior. Então, se você tem
mais de 10 usuários, já avalie
instalar o c - tree server, a TOTVS
libera a licença para até 64 usuários
sem cobrança de licenciamento, a
partir disso tem uma cobrança : (
BALANCE
Outra funcionalidade importante do Protheus, o balanceamento de
carga.

Normalmente quando você instala um Protheus vc inicia com apenas


um servidor de aplicação, mas a medida que a quantidade de
LOAD usuários vai aumentando o servidor de aplicação não suporta muitos
usuários, então você tem de criar uma estrutura chamada de load
balance.

Ele funciona com um server que é o MASTER, e vários outros servers


que são chamados de SLAVES, o exemplo abaixo tem apenas 2
slaves, mas poderiam ser mais:

Você pode fazer o balanceamento


inclusive em computadores
diferentes, o master pode ficar em
um computador e os slaves em
outro, ou parte dos slaves em um
computador e o restante dos slaves
em outro... é bem flexível isto.
INACTIVE  TIMEOUT

Muitas vezes os usuários do Protheus entram no sistema, fazem


uma atividade, saem do computador e deixam o sistema logado.

Além de ser uma questão de segurança, isto também consome


licença e recursos do sistema.

Para derrubar estes usuários inativos, use a cláusula inactivetimeout


do Protheus, depois de x minutos (configuráveis) o sistema derruba
o usuário e libera os recursos e a licença.
DESFRAGMENTAR REPOSITÓRIO

DEFRAG

O repositório de objetos do Protheus é onde fica toda a inteligência de


negócio do Protheus, lá estão todas as funções de inclusão de produtos,
notas fiscais, bibliotecas e muitas outras funções.

Com o tempo, o rpo ( repositório ) pode ficar bem grande, a medida que vc
aplica patchs, updates e faz compilações de fonte... então, é importante
você fazer a desfragmentação para ganhar vários MB que serão
economizados em HD ( E memória RAM ) na execução dos appservers.

E se você utilizar o load balance isto pode ser uma economia de Gigabytes!
Audit Trail
Audit trail é o log de alterações do Protheus, ele controla o que foi alterado, por
quem e quando foi alterado.

Então se você altera um cadastro de um fornecedor, o sistema guarda os dados


anteriores a alteração, os dados novos, o usuário que alterou e a data/hora.

Você pode escolher quais tabelas vc quer auditar, e também o nível de auditoria, o
mais baixo ou o mais alto.

Mas, cuidado com o audit trail, se vc configurar o audit trail com a auditoria máxima
em todas as tabelas (100% das tabelas e campos) então você com certeza terá um
sistema com a performance depreciada...

Avalie quais tabelas e quais níveis de auditoria você quer, isso pode fazer toda a
Lembrando que:
diferença na performance do seu sistema. Quanto maior o nível de
As tabelas que serão auditadas é uma configuração opcional, então sempre coloque
auditoria menor será a
na balança a questão da auditoria vs performance. performance.
Quanto menor a
Lembrando que, quanto maior o nível de auditoria menor será a performance e auditoria maior será a
quanto menor a auditoria maior será a performance.
performance.
ATUALIZAÇÃO Sabemos que as atualizações do Protheus às
vezes nos trazem muitos problemas, mas também
temos de estar atentos para versões de binários,
TSS, audit trail e demais aplicativos do Protheus
pois com eles desatualizados podemos carregar
vários problemas que já foram resolvidos
pela TOTVS como manipulação de memória, leak
de memória, conexões erradas com sefaz e etc.

Então, sempre tenha no seu planejamento a


atualização dos aplicativos Protheus.
BOUND SERVER
O c-tree BoundServer (c-tree Server DLL) é, basicamete, um
servidor c-tree que sobe junto (embedado) com o Protheus
Server.

É recomendado seu uso em ambientes onde é utilizado


apenas um Protheus Server como servidor de aplicação,
onde os dicionários não têm seu acesso compartilhado com
outros servidores Protheus.

Nós do UF nunca precisamos utilizá-lo, mas vale o


registro!
ROTINAS
AGENDADAS
Temos de ter atenção em
Imagine uma tarefa que
roda de hora em hora.
rotinas agendadas, se vc
Agora imagine que esta
utiliza o gerenciador de
rotina está com alguma
tarefas do windows ou o
falha e apresenta
próprio schedule do
travamentos, então em 1
Protheus é importante
dia vc terá 24 processos
sempre vc acompanhar
travados depreciando sua
como está a execução
performance, e no decorrer
destas tarefas, pois uma
dos dias isso vai piorar
tarefa agendada com
ainda mais. Por isso temos
problemas pode depreciar
de ter bastante atenção
todo o sistema e vc nem vai
com esses agendamentos.
saber exatamente de onde
vem a lentidão pois é uma
Então, fique de olho nas
rotina que é executada
rotinas agendadas!
automaticamente.
Gargalos
Você tem sempre de estar atento com os
gargalos que podem estar ocorrendo no
sistema, a estrutura do Protheus é bem
distribuída mas ela é impactada de forma
serial quando há algum ponto com lentidão.

Por exemplo, o sistema todo pode estar bem


dimensionado e rápido, mas se o SGBD
estiver lento então toda a estrutura sofrerá.

Então, realmente a performance do sistema


todo será definida pela velocidade do
componente mais lento da estrutura. Então,
sempre deve-se ter atenção no SGBD,
dbaccess, audittrail, appserver, rede, hd,
processamento e demais itens que impactam
na estrutura Protheus.
Tem uma funcionalidade do protheus que
permite a você desabilitar alguns itens do
BROADBAND sistema para ganho de performance

Você pode desabilitar:

1 - O menu funcional
2 - Painel Online
3 - Browse de internet na abertura do sistema
4 - Detalhes apresentados nas telas de Browse
de tabelas
5 - Exibição de painéis transparente em
interfaces de destaque
Estas modificações são feitas no .INI do
server

Use para clientes com problemas de lentidão


de hardware ou rede.
Especialize
os servers
Sempre que for possível, crie servers especialistas,
isto facilitará muito a manuteção do sistema e
também a velocidade.

Você pode ter um appserver único que é servidor


de aplicação pra usuários, license server,
webserver, servidor http, servidor ftp e por aí vai...
mas, sempre que possível, tente separar estes
serviços em appservers separados.

Claro que nem sempre isso será possível, temos


limitações de hardware e às vezes é desnecessário
fazer a separação, mas com a separação tem-se
um ganho tanto de performance quanto de
organização.
Diário de bordo
DATA HORA AÇÃO RESP.
Mantenha um diário de bordo sempre atualizado com 01/01/16 08:00 SERVER REINICIADO JOÃO
tudo que é feito na estrutura dos computadores e 02/02/16 19:00 UPD APLICADO ANDREA
07/02/16 19:00 UPDSIGAFIS APLICADO ANDREA
serviços envolvidos com o Protheus. 27/03/16 10:00 DBACCESS REINICIADO ANDREA

Nem sempre será só você quem mexerá na estrutura,


na verdade é muito comum várias pessoas mexerem
nisso, então é importante ter um local centralizado e
atualizado de tudo que ocorre de manuteção ou
ocorrência nos servidores do Protheus.

A dica seria criar uma planilha no GoogleDrive para


controlar isto e dar o acesso a quem irá atualizar o
diário. É necessário disciplina pra manter estes
registros, mas é muito importante para todos da equipe
terem o histórico completo e fácil do que está sendo
feito na estrutura Protheus.
LIMPEZA de
arquivos
O grande número de arquivos que o protheus precisa
pra trabalhar acaba por tornar várias tarefas mais
trabalhosas na manutenção do sistema.

Então deve-se sempre verificar estes arquivos e fazer a


limpeza deles.

Por exemplo RPOs não utilizados mais, de testes ou


ambientes criados para analistas, é muito comum os HDs
dos servidores ficarem sem espaço por conta da grande
quantidade de RPOs obsoletos que são deixados nos
servidores.
ORGANIZAÇÃO

 Tenha sempre organização em toda a sua estrutura do Protheus, não adianta montar um ambiente todo homologado pela
TOTVS e mantê‐lo desorganizado.
Não deixe acumular arquivos que não serão utilizados, tenha sempre um padrão de nomenclatura de servers, pastas,
repositórios, ambientes e etc. Sem organização você fatalmente sucumbirá a problemas causados pela própria desorganização.
Ou seja, a organização é investimento, sempre reserve tempo para deixar tudo muito bem organizado.
Faltou alguma coisa?
Este e-book é um documento vivo e está sempre em atualização. Se faltou
algo, não deixe de nos contactar pelo site ou pelo contato@userfunction.com.br

userfunction.com ‐ Consultoria especializada em Protheus
contato@userfunction.com.br
Protheus, ADVPL, Sigaloja e TOTVS são produtos e marca registrada de propriedade da TOTVS S.A. Logotipos TOTVS e Microsiga são de
propriedade da TOTVS S.A. A Userfunction consultoria é uma empresa de consultoria independente e não tem nenhum vínculo direto ou
indireto com a TOTVS®, qualquer uma de suas franquias ou qualquer um de seus representantes.

Você também pode gostar