APLICATIVO VB-6 COM BD MYSQL - LENTO
Pessoal...
é normal isso:
Para executar a seguinte consulta leva cerca de 10 a 15 segundos no mÃnimo !:
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.
é 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.
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...
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...
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.
FERPIRO:
OK ! é assim mesmo que faço... só que no meu projeto está em uma função:
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...
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...
KERPLUNK:
O banco é on-line...hospedado no FreeSQL.
Quando uso a base de dados local o sistema voa !
O banco é on-line...hospedado no FreeSQL.
Quando uso a base de dados local o sistema voa !
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.
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.
Caso precise de mais ajude, coloque suas dúvidas para podermos ajudar.
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 !
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