Escolar Documentos
Profissional Documentos
Cultura Documentos
12 de setembro de 2012
1/9
7/4/2014
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
empresa que aquela tabela pertence e o ltimo caractere reservado ao sistema, por exemplo a
tabela de cliente da empresa 01 a SA1010, da empresa 02 a SA1020 onde SA1 a famlia da
tabela, 01 e 02 representa a empresa e o 0 no final reservado. Como assim famlia ? Exemplo,
cliente SA1, fornecedor SA2 e assim por diante;
O campo chave primaria das tabelas sempre o mesmo, ou seja, todas as tabelas tem um campo
chamado R_E_C_N_O_ que auto-incrementado pelo Top Connect e que a PK das tabelas;
Os registros das tabelas nunca so deletados fisicamente. Todas as tabelas contm um campo
chamado D_E_L_E_T_ e quando algum exclu um registro no banco esse campo preenchido
com um *, ento sempre que for fazer qualquer select lembrem-se de desprezar os deletados
colocando no where a condio D_E_L_E_T_ = , ou D_E_L_E_T_ <> *. Esse conceito de
excluso lgica vem do DBF;
No existe campo DateTime nas tabelas. Todos os campo data so VARCHAR(8) e nunca so
nulos e so sempre preenchidos com 8 caracteres em branco quando representam que esto
vazios;
Muito cuidado ao criar ndices nas tabelas, pois se voc criar em uma ter que criar em todas,
por exemplo se criar um ndice na tabela de cliente SA1XX0 lembre-se de replicar esse ndice
para as demais tabelas de cliente caso tenha;
O Protheus trabalha com um dicionrio de dados prprio que onde so definidas as tabelas,
campos e ndices ento em uma atualizao de verso feita uma checagem do dicionrio de
dados com a estrutura do banco de dados e tudo que no estiver definido no dicionrio ser
apagado, seja campo, ndice ou tabela, portanto ao criar um ndice utilizado em um trabalho de
Tuning eu aconselho a criar uma rotina que diariamente verifica a existncia desse ndice e ento
caso no exista mais crie-o novamente. Eu costumo colocar tudo dentro do step de um job que
diariamente consulta a sys.indexes pelo nome;
Nunca criei um campo em uma tabela sem antes passar para o dicionrio de dados do Protheus,
pois ao abrir uma tela que use a tabela onde o campo foi criado, essa tela ir travar por no ter o
campo no dicionrio;
O desempenho das consultas no so grande coisa, pois a maioria dos desenvolvedores Protheus
no tem grandes habilidades e conhecimento sobre indexao, ento sempre bom dar uma
checada nas consultas mais lentas e dar um help para a galera de desenvolvimento;
Uma forma de ganhar desempenho no banco a compresso de dados a nvel de pgina se for
SQL Server Enterprise;
Os bancos geralmente so enormes ento vlido pensar em uma estratgia de particionamento
das tabelas;
ndices no usados e duplicados h muitos, ento vlido analisar isso e repassar para os
desenvolvedores. Nunca apague um ndice sem antes apagar no dicionrio, pois as telas fazem
essa verificao tambm em sua abertura;
O Top Connect no funciona em cluster e como preciso instal-lo no mesmo servidor do banco
de dados, no ser possvel colocar ele no Service and Application do Cluster e quando ocorrer
um Failover ser necessrio reiniciar o servidor de licena que fica geralmente em outro servidor,
seno ele no voltar ao ar e a aplicao no abrir.
Bom galera espero que essas dicas sejam teis para todos. Conforme eu for me lembrando de mais
coisas eu vou postanto.
At mais.
http://4sqlserver.wordpress.com/2012/09/12/dicas-sobre-o-banco-de-dados-do-protheustotvs/
2/9
7/4/2014
13,99
3/9
7/4/2014
Abrao,
Alexandre Thiel
RESPOSTA
Marcel Inowe diz : 8 de janeiro de 2013 s 8:35
Alexandre obrigado pela dica. Voc est certo, eu me equivoquei na minha colocao.
Abraos.
RESPOSTA
Bruno diz : 6 de agosto de 2013 s 22:40
Marcel, parabns pelo post!
Apenas uma correo, agora na verso 11 do Protheus podemos usar o novo conceito de
empresa, unidade de negcio e filial, e dependendo da configurao podemos ter 10
empresas, 10 filiais para cada empresa e ainda assim utilizar uma nica tabela, se for
conveniente. O tratamento de compartilhamento entre filiais e empresas fica no campo
_FILIAL da tabela.
Abs
Marcel Inowe diz : 12 de setembro de 2013 s 16:13
Boa tarde Bruno, primeiramente obrigado pelo seu comentrio.
Muito bom saber que na verso 11 d para fazer isso. Basta saber se os consultores
Protheus vo usar esse recurso.
Abraos
Luiz Carlos diz : 27 de julho de 2013 s 22:36
Na verso 11 do Protheus isso j foi tratado, as tabelas podem ser compartilhadas em trs
nveis e cada jogo de tabelas se d pela criao de um grupo de empresas, ou seja, mesmo
tendo vrias empresas e em vrios segmentos, voc ainda poder estar trabalhando no
mesmo jogo de tabelas.
RESPOSTA
Mrcio Lenharo diz : 24 de maro de 2013 s 22:32
Marcel, Boa noite!
Vc citou acima sobre estratgia de particionamento das tabelas, minhas perguntas so:
O particionamento do SQL Server compatvel como o DBAccess?
Existe algum procedimento especial ou diferente para aplicar o particionamento no caso do
Protheus?
Qual estratgia recomenda?
Obrigado.
RESPOSTA
Marcel Inowe diz : 26 de maro de 2013 s 7:48
http://4sqlserver.wordpress.com/2012/09/12/dicas-sobre-o-banco-de-dados-do-protheustotvs/
4/9
7/4/2014
5/9
7/4/2014
RESPOSTA
Marcos A. Becker diz : 8 de junho de 2013 s 11:47
Ola Marcel,
j trabalho com vrios bancos de dados h alguns anos e estou comeando a explorar o
Protheus, suas dicas foram preciosas, muito obrigado.
MBecker
RESPOSTA
Marcel Inowe diz : 26 de junho de 2013 s 20:13
Marcos, fico feliz que foram teis para voc. Se tiver algum assunto que queira que eu
aborde s avisar.
Abs
RESPOSTA
Larissa diz : 12 de setembro de 2013 s 15:38
Para utilizar o Microsiga Photheus, meu banco de dados pode ser em Microsoft SQL Server?
RESPOSTA
Marcel Inowe diz : 12 de setembro de 2013 s 16:11
Boa tarde Larissa, primeiramente obrigado pelo seu comentrio.
O Protheus um ERP que pode ser utiliza com todos os bons bancos de dados existentes no
mercado. Eu no sou um especialista em Protheus mas pelo que me lembre pode-se usar com
SQL Server, Oracle, DB2, PostgreSQL e MySQL, posso estar enganado mas acho que
suporta Firebird e ainda suporta DBF.
Abraos
RESPOSTA
Wyllian diz : 10 de dezembro de 2013 s 16:52
Marcel, muito bom seu artigo.
Mas em resposta ao comentrio do dia 12 de Setembro 2013, apesar de poder utilizar o
MySQL, o mesmo no homologado para o uso da aplicao do Protheus e sim somente
para o uso do Portal que faz integrao com o SEFAZ (para emisso das NF eletronicas).
J em reposta ao Cesar no dia 20 de Maio de 2013, eu trabalho a quase 10 anos com o
Totvs Protheus desde a verso 6.09. Passei por bancos DBF, CTREE, DB2 e SQL Server.
E digo o seguinte: sim o sistema tem uma base antiguada, sim as atualizaes causam
uma certa dor de cabea, mas descordo da lentido e de alguns problemas de
atualizaes gerar novos Bugs do sistemas pois se isso acontece pelo simples motivo do
cliente ao solicitar customizao ou ter feito ela sem um acompanhamento adequado.
acabou incompatibilizando o sistema.
Vejo que nos ltimos 2 anos quando surgiu a vero 11 do Protheus, o pessoal da Totvs j
comeou a aplicar novos conceitos, mas claro tudo aos poucos. No adianta querer
alterar toda uma estrutura funcional de uma hora para outra, pois isso um tiro no p.
Tenho F ainda que vai ficar bom mesmo com uma linguagem como o ADVPL
(CLIPPER avanado).
http://4sqlserver.wordpress.com/2012/09/12/dicas-sobre-o-banco-de-dados-do-protheustotvs/
6/9
7/4/2014
7/9
7/4/2014
Abs
RESPOSTA
Kayo Hamid diz : 13 de maro de 2014 s 14:23
Opa Marcel, estava precisando dessas informaes.
Quero efetuar uma replicao entre matriz e filiais, como vc disse que cada filial tem sua tabela,
isso seria moleza.
A questo fica em como eu faria o TOTVS App Server rodar na filial, vc tem alguma informacao
para me passar nesse ponto? O TOTVS App Server eu vi que trabalha balanceado, mas cada
um pode acessar um banco de dados diferente ?
No caso eu poderia colocar um TOTVS App Server na filial acessando o banco replicado da
filial?
Abraos.
RESPOSTA
Marcel Inowe diz : 13 de maro de 2014 s 14:51
Oi Kayo obrigado pelo feedback. Na poca que estava atuando constantemente eu no me
recordo de nenhum servio chamado Totvs App Server, me lembro do Top Connect. Seria o
mesmo? S um adendo que cada empresa tem sua tabela e no cada filial, eu achei que eu
j tinha corrigido, mas fui ver agora e ainda est escrito Filial. Me desculpe! Se o Totvs App
Server for o mesmo que o Top Connect basta instal-lo na filial desde que voc tenha a
licena, ele ir funcionar perfeitamente, porm atente-se com ambiente Protheus e replicao
que o caso da auto numerao do campo R_E_C_N_O_, pois ele chave primria das
tabelas e quem enumera ele o Top Connect e no o banco de dados, ento se a tua
replicao for bi-direcional no caso da merge ou peer-to-peer isso lhe trar enormes
problemas.
RESPOSTA
Kayo Hamid diz : 13 de maro de 2014 s 15:16
Marcel valeu pela resposta, eu acho que o Top Connect que vc se refere hoje o DBAcess,
d uma olhada em: http://gilbertofurtado.wordpress.com/2011/02/02/instalando-econfigurando-protheus10-sql-server-no-windows/
Marcel Inowe diz : 13 de maro de 2014 s 15:33
Realmente o top que eu me refiro o DBAccess.
Abraos
Trackbacks / Pingbacks
1. Dicas sobre o banco de dados do Protheus(Totvs) Alex Souza - 21 de setembro de 2012
2. 5 motivos para quem utiliza o Protheus (Totvs) contratar um DBA SQL Server |
Fabrcio Lima - 14 de dezembro de 2013
http://4sqlserver.wordpress.com/2012/09/12/dicas-sobre-o-banco-de-dados-do-protheustotvs/
8/9
7/4/2014
http://4sqlserver.wordpress.com/2012/09/12/dicas-sobre-o-banco-de-dados-do-protheustotvs/
9/9