LENTIDAO NO SISTEMA

Mande para cá, aquela sua dica preciosa, aquele truque ou rotina que você criou ou descobriu e que poderá ser de grande ajuda para a comunidade.
Seja nosso colunista de artigos, produza aqui neste local artigos que podem ser de delphi ou de xmaker.
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
mmsystems
Mensagens: 29
Registrado em: Fevereiro 17th, 2011, 7:09 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

LENTIDAO NO SISTEMA

Mensagempor mmsystems » Maio 10th, 2011, 7:41 pm

BASE DE DADOS COM 52 TABELAS MUNICIPIO COM O IBGE FUNCIONA NORMAL
TABELA DE CLIENTES COM 2000 REGISTROS LERDA

COMO RESULVER
ALGUEM PODE ME AJUDAR

Suporte
Site Admin
Mensagens: 145
Registrado em: Dezembro 20th, 2010, 10:05 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: LENTIDAO NO SISTEMA

Mensagempor Suporte » Maio 10th, 2011, 11:35 pm

Olá,

Quanto a quantidade de registros... até 10.000 registros, o Firebird e o sistema gerado trata de olhos fechados, não é muito não, porém vamos a algumas considerações de importância geral.

O modo de leitura das tabelas deverá seguir os critérios de uma aplicação "Client/Server", a utilização de filtragens (seleção) de registros é muito importante, trabalhar com todos os registros abertos sem nenhuma seleção irá causar um tráfego muito grande na rede, principalmente nas estações.

Defina os critérios de visualização dos registros, por exemplo- se a sua tabela de "vendas" possui milhões de registros é totalmente desnecessário e inviável a abertura de todos os registros, faça filtragens do tipo Data da Venda = Data Atual.

Uma aplicação "Client/Server" requer uma melhor analise da forma de extração dos dados, a herança da forma de manipulação de tabelas em programas em Clipper tem que ser abandonado, os gerenciadores de banco de dados atuais possuem estruturas diferentes, deve-se trabalhar com apenas aquilo que será realmente utilizado.

Vamos a alguns passos que vale para todos os usuários, desta forma suas aplicações irão voar!!

1 - Use a propriedade "Abrir Tabela", pois é utilizada para indicar se a tabela será aberta na inicialização do sistema.
O ideal é que o projeto faça a abertura somente das tabelas que serão utilizadas no momento pelo usuário, se o projeto possui 60 tabelas e o usuário irá naquele momento de execução utilizar apenas uma 1 tabela, para cadastrar algum registro por exemplo, a abertura de todas as tabelas será desnecessária e irá gerar tráfego de informações que serão desnecessários. Os modelos de formulário de Entrada de Dados já possuem a instrução para abertura da tabela no momento da execução.

2 - Criar filtragens iniciais para tabelas com grande volume de dados.
Voce pode utilizar a filtragem na inicialização da tabela (opção disponível na criação de tabelas), depois ir criando os filtros de acordo com a necessidade dos usuários

3-Seja criterioso na definição de índices, evitar a criação desnecessária de índices, ao invés de ajudar passam a atrapalhar.
Definir muitos índices em uma mesma tabela, principalmente índices alfanuméricos, gera uma lentidão na atualização dos registros

Quando criar um índice secundário ?

Se você tem uma tabela de "Clientes" e o usuário utiliza muita a procura pelo "Nome do Cliente" então nesse caso é aconselhável um índice por "Nome", se os demais campos são utilizados com menos frequência então não é necessário definir outros índices.

Quando você define uma chave estrangeira que utiliza um campo que não possui índice o sistema ordena em tempo de execução através do SQL (Order By), quando o índice já existe a consulta é muito mais rápida.
Quando criar relacionamentos, opte por campos indexados.(Não esquecendo que o tamanho influencia)

4. Evitar o excesso de campos externos por exemplo campos da tabela Cliente em Pedido de Venda.

5. Otimize os relacionamentos. Criar somente os necessários.(em relacionamentos, prefira o campo "código" ao campo "nome"... )


6. Configure o banco de dados conforme a necessidade.
O Firebird, por exemplo, tem diversas formas de otimizar o acesso a dados. Dê uma olhada no site http://www.firebase.com.br.

7. Na definição do projeto, escalone bases fixas grandes como uma tabela de CEP que é pode ter até 700.000 registros, ou seja, coloque ela em uma base separada(CEP.GDB) e na aplicação copie a mesma para cada estação e na definição de localização informe que a base CEP será aberta localmente... existe outras formas para evitar o tráfego em rede de tabelas grandes... na busca do CEP, pode ser solicitada por exemplo a UF e o logradouro, assim já reduzimos os dados que virão... pode ser usada a filtragem fixa do formulario de pesquisa indicando a uf/demais dados e por fim quando a filtragem em uma
pesquisa ser inviável, ainda assim podemos selecionar a opção "Pesquisar após o ENTER" no lugar de "Pesquisar a cada caracter"

8. Cuidado com Cache do S.O./Firewall/Antivirus, pois apesar de todos liberarem o tráfego dos dados, acabam por criar um gargalo, degradando a performance. O Sistema operacional
também é importante, Serviços desnecessários que consomen processamento devem ser desativados, enfim o computador deve ser otimizado, uma máquina projetada para servidor, possui
arquitetura e preferência para serviços ao passo que uma máquina cliente possui preferêncialmente otimização para programas.

Bem existe muito que falar sobre otimização de sistemas e rede, mas esperamos com este tópico ter elucidado e criado um caminho para que seja utilizado de referência.

Gratos pela atenção.
Att,

Suporte - suporte@xmaker.com.br
Equipe Xmaker
_______________
http://www.xmaker.com.br


[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Voltar para “Colaborações/Dicas, Artigos e Truques”

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante