FIREBIRD, VB6 5 CINCO VEZES MAIS RAPIDO QUE VBNET

VBSHAR 15/01/2010 16:38:01
#332068
Boa tarde


bem... estou fazendo uns testes aqui e, em VB.NET este comando leva 6 segundos para ser executado:


Dim DA As FbDataAdapter
Dim DS As New DataSet
Dim con As New FbConnection
Dim sql As String = [Ô]Select * from Clientes[Ô]
con.ConnectionString = My.Settings.FB_SERVER
Try
con.Open()
DA = New FbDataAdapter(sql, con)
DA.Fill(DS, [Ô]SELECT * FROM CONTAS ORDER BY DESCRICAO[Ô])
con.Close()


o equivalente a ele em VB6, na mesma maquina leva menos de 1 segundo:
 
Dim rcDB As New ADODB.Connection
Dim rcRS As New ADODB.Recordset

rcDB.ConnectionString = [Ô]Provider=ZStyle IBOLE Provider;Password=masterkey;User ID=sysdba;Data Source=[Ô] & Banco & [Ô];Charset=WIN1252;SQL Dialect=3;Logging Level=0[Ô]
rcDB.Open
rcRS.Open [Ô]SELECT * FROM CONTAS_CONTAS ORDER BY CODIGO[Ô], rcDB, adOpenDynamic, adLockOptimistic


fora que para marcar o tempo no VB.net deu uma trabalheira doida (No VB6 é mole com [Ô]timer[Ô])...

Queria saber se quem usa VB.NET + FB é esta parareira toda? estou seguindo as dicas do Macoratti e usando o [Ô]FireBird .NET Provider[Ô], há algum macete para melhorar a coisa ou [Ô]tenho de me acostumar[Ô] ?
MARCOSLING 15/01/2010 16:41:01
#332070
tenta utilizar o datareader ao invés de dataset
ASHKATCHUP 15/01/2010 16:43:52
#332072
Outra coisa:

Qualquer processo será mais rápido em VB6 do que em VB.Net

Por que? Por causa do Framework.

Pelo menos, foi o que nós notamos aqui na empresa após reescrever um serviço auxiliar do nosso programa.
VBSHAR 18/01/2010 16:25:36
#332241
Ok, ok.... em meus testes refiz o codigo em .NET para:

Imports FirebirdSql.Data.FirebirdClient
Public Class aMAIN
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
[ô]MEDIR TEMPO (EQUIVATENTE AO TIMER NO VB6)
Static start_time As DateTime
Static stop_time As DateTime
Dim elapsed_time As TimeSpan
start_time = Now
[ô]MEDIR TEMPO (EQUIVATENTE AO TIMER NO VB6)
[ô]========================================
Dim con As New FbConnection
con.ConnectionString = My.Settings.FB_SERVER
con.Open()
[ô]========================================
[ô]MEDIR TEMPO (EQUIVATENTE AO TIMER NO VB6)
stop_time = Now
elapsed_time = stop_time.Subtract(start_time)
Me.Text = elapsed_time.TotalSeconds.ToString([Ô]0.000000[Ô])
End Sub
End Class


e mantive o codigo em VB6 (note que o processo do VB6 faz muito mais coisa pois abre o recordset....

Resultado: VB6 faz mais coisa na metade do tempo...

Há umas ferramentas novas para VB6 agora (disponibilizadas pela propria MS) e o MSDN para VB6 está ativo de novo
http://msdn.microsoft.com/en-us/vbrun/default.aspx

Há também este site que achei bem legal:
http://vb.mvps.org/
Tópico encerrado , respostas não são mais permitidas