Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SQL - Select
Message
From
12/12/2003 19:27:25
Peter Wagner
Point Informática Ltda.
Limeira, Brazil
 
 
To
12/12/2003 13:29:21
General information
Forum:
Visual FoxPro
Category:
Client/server
Title:
Miscellaneous
Thread ID:
00858518
Message ID:
00858836
Views:
17
José,
Vou fazer uma analogia:
Vc vai a uma empresa que tem um Arquivo daqueles de fichario de metal.
Vai no balcao e solicita uma informação, passando o seu Nome, aguarda e ve o que acontece...
O atendente que te atendeu se vira e vai até o fichario e procura pelas gavetas que contenham o inicio do seu nome.
Vamos supor que ele tenha umas 5000 fichas com o nome "José", ele pega as primeiras 50 e leva até a mesa e olha cada uma para ver se é a sua ficha...
Ele descobre que não é nenhuma das que ele tem sobre a mesa, e repete este procedimento até encontrar a ficha desejada.
Vou supor que seja a ficha 451, isto significa que ele obtem a ficha só na 10° viagem até o arquivo.
Vc observou que ele caregou 500 fichas até a mesa !
Vc observou que ele perdeu tempo olhando cada uma das fichas !; e só vai fazer o que deve após encontrar a ficha necessária.

A sua ideia de mover de 50 em 50 registos é a mesma.
Vc acha que um dono de empresa aceitaria que algum funcionario faça isto ? ou o dono prefere que o funcionario procure cada ficha ficando lá no proprio arquivo, só levando a ficha necessária até a mesa.

Se vc tem uma rede, vc a congestionou com 450 registros inuteis.
Fez 10 SELECT's dos quais 9 foram inuteis e tomaram tempo de processamento de outras consultas no servidor.

Vamos supor agora que sejam pedidos...(SIMPLES)
Neste caso cada pedido tem os itens de pedido, vamos supor que sejam de 10 itens em média para cada pedido.
Se for o pedido 451, vc teria trafegado 451 pedidos e mais 4510 itens de pedido...totalizando 4961 registros.
Observe que esta começando a aumentar o trafego na rede ?

Como fica a rede com 20 funcionarios fazendo o mesmo...? o trafego sobe cada vez mais...

Vamos supor que o seu cliente é dono de uma loja e esta tem uma filial.
Vc tem que trafegar estes registros em uma rede tipo ADSL, ou linha discada...
Uma conexão via ADSL em média tem 256kbps, e em uma rede local 100Mbps.
Observe a diferença de escala na velocidade p/ trafegar os dados... vc acredita que o cliente vai esperar 15 minutos p/ obter a informação. (veja que aqui tambem trafegam dados que não são necessários)
Multiplique isto por varios usuários acessando dados em conexões de banda "LENTA"... Vai ficar cada vez mais lento e insuportavel.

Um dos maiores motivos p/ se desenvolver aplicativos C/S é que a velocidade da banda de trafego é limitada, e que mesmo que o servidor obtenha os dados rapidamente pode demorar p/ se obter os dados pois a rede é o gargalo que limita a velocidade, inclusive em redes locais quando o volume de dados é elevado, e quanto maior o volume de dados, mais demora.

Contudo vc pode seguir fazendo o que acha correto...quando tiver problemas no futuro, tera de re-escrever que fez.

Simplifique a sua vida, deixe somente uma opção p/ se obter os dados, e de preferencia que o usuário saiba o que esta solicitando ao servidor.

[ ],s
Peter


>Valeu, Peter...
>
>os esclarecimentos que vc me passou, irão me ajudar muito, obrigado mesmo....
>
>enquanto aguardava alguma resposta aqui na UT, eu fiz uma mudança de estratégia, veja:
>
>1) faço uma consulta ao banco, trazendo para o cursor 50 registros antes e 50 depois, ou seja 50 < registro > 50.
>
>2) com isso os botões anterior e próximo trabalham somente no cursor, quando então o usuário atingir o BOF() ou EOF() do cursor, que uma nova consulta ao servidor será requisitada.
>
>3) além disso, existe um botão de consulta específica, retornando sim, o registro correto.
>
>
>o que vc acha disso...
Previous
Reply
Map
View

Click here to load this message in the networking platform