APLICATIVO VB-6 COM BD MYSQL - LENTO

DANLEONHART 19/07/2012 22:24:55
#406291
Pessoal...

é normal isso:

Para executar a seguinte consulta leva cerca de 10 a 15 segundos no mínimo !:

Sub CarregarDados()
Dim vBusca As String

vBusca = [Ô]SELECT ID_Clientes,Cliente,[Ô] _
& [Ô]Contato,Email FROM Tab_Dados ORDER BY ID_Clientes ASC[Ô]

Me.MousePointer = 11
OpenMySQL [ô] Função que abre a conexão:
Set Rst = New ADODB.Recordset

With Rst
.ActiveConnection = objMySQL
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockReadOnly
.Open vBusca
End With

[ô] Configurar aqui o ListView

Lv1.ListItems.Clear

With Lv1.ColumnHeaders
.Clear
.Add , , [Ô]ID_Cliente :[Ô], 1300, 0
.Add , , [Ô]Cliente :[Ô], 3000, 0
.Add , , [Ô]Contato :[Ô], 1800, 2
.Add , , [Ô]E-mail :[Ô], 3000, 0
End With

Do Until Rst.EOF

Set Lst = Lv1.ListItems.Add(, , , 3, 3)

With Lst
.Text = Rst.Fields(0) [ô] ID_Cliente
.SubItems(1) = Rst.Fields(1) [ô] Cliente
.SubItems(2) = Rst.Fields(2) [ô] Contato
.SubItems(3) = Rst.Fields(3) [ô] E-mail
End With

Rst.MoveNext
Loop

Me.MousePointer = 0

End Sub


Utilizo drive ODBC 5.1 pois o OLEDB que encontrei tem que registrar e já viu né

Isso pode ser problema da minha conexão de internet ? é wireless...
Tenho outras rotinas que também demoram o mesmo tempo e até mais...

Se alguém puder me dá uma dica aê agradeço... é a primeira aplicação VB que faço utilizando MySQL com servidor via WEB.
FERPIRO 19/07/2012 23:05:55
#406294
Boa noite !!!

Eu uso assim:

Dim sConn_Servidor As ADODB.Connection
Set sConn_Servidor = New ADODB.Connection
With sConn_Servidor
.CursorLocation = adUseClient
.Open [Ô]DRIVER={MySQL ODBC 5.1 Driver};[Ô] _
& [Ô]user=[Ô] & txtFields(1) _
& [Ô];password=[Ô] & txtFields(2) _
& [Ô];database=[Ô] & txtFields(3) _
& [Ô];server=[Ô] & txtFields(4)
End With

Uso para consultar cliente em um BD MySQL locado na net, este BD tem mais de 90 mil registro é muito rápido a consulta.......

Espero q ajude...
KERPLUNK 19/07/2012 23:13:40
#406297
Se o banco for remoto(em outra rede), o desempenho pode variar em muito, dependendo das condições de conexão com a internet. Se for na sua rede mesmo, o tamanho da tabela, a configuração do servidor, indexação chaves estrangeiras e até mesmo espaço e disco pode afetar o desempenho também. A questão não é código, e sim, estrutura.
DANLEONHART 19/07/2012 23:17:20
#406300
FERPIRO:
OK ! é assim mesmo que faço... só que no meu projeto está em uma função:
   
Function OpenMySQL()
Set objMySQL = New ADODB.Connection
objMySQL.Open [Ô]Driver={MySQL ODBC 5.1 Driver};[Ô] _
& [Ô]Server=www.freesql.org;[Ô] _
& [Ô]Port=3306;[Ô] _
& [Ô]Database=MyDatabaseOnLine;[Ô] _
& [Ô]User=MeuUsuario;[Ô] _
& [Ô]Password=MinhaSenha;[Ô] _
& [Ô]Option=3[Ô]

End Function


Estou começando a achar que realmente é a minha Net que está ruim...o danado é que nos testes de velocidade a conexão dá em média 1 Mbps...
DANLEONHART 20/07/2012 06:24:54
#406319
KERPLUNK:
O banco é on-line...hospedado no FreeSQL.
Quando uso a base de dados local o sistema voa !
MARCELO.TREZE 20/07/2012 11:56:26
#406346
Resposta escolhida
olha problema de velocidade não é a consulta e sim o tempo que leva pra se conectar ao banco aqui resolvi da seguinte maneira conecto no load do form principal e me desconecto no unload do mesmo, depois só realizo as consultas, tente isso.
NETMANIA 20/07/2012 16:43:10
#406364
Segue uma lista de possíveis problemas de lentidão na execução remota da sua aplicação:

  • Provedor com servidor sobrecarregado
  • Qual é a velocidade real que o seu provedor internet realmente entrega. Para ADSL (que é usado pelas empresas de telefonia), a maioria garante 10% da banda contratada. No seu caso, se você tiver 10 MBits, com a garantia mínima, você deverá ter garantido no mínio 1Mbit.
  • O seu link de saída é compartilhado por todos? Você já tentou verificar se as pessoas usam os computadores para baixar filmes, Youtube, Facebook e outras coisas? Basta uma pessoa com Torrent aberto ou efetuando o download, ou vários usando Youtube que a sua banda será utilizada, degradando a performance de sua aplicação.

    Caso precise de mais ajude, coloque suas dúvidas para podermos ajudar.

  • DANLEONHART 20/07/2012 16:59:51
    #406369
    NETMANIA: Todas as suas colocações tem fundamentos e com certeza isso ocorre...como trata-se de um serviço compartilhado, sem sombra de dúvidas o pessoal baixa filme e muitas outras coisas.

    MARCELO-TREZE: Fiz o que você sugeriu... e a aplicação está uns 60% mais rápida .

    Como uso com frequência o Access como base de dados, tenho o vicio de sempre fechar a conexão com o BD para evitar danos, e reabrir em outro caso de precisão (Consulta, Inserção, Exclusão ou Edição)...detalhe este que não é preciso no SQL Server e MySQL entre outros.

    Obrigado pela dica !
    Tópico encerrado , respostas não são mais permitidas