Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Oledb connection pooling?
Message
From
06/03/2011 10:40:08
 
 
General information
Forum:
ASP.NET
Category:
Other
Environment versions
Environment:
VB 8.0
OS:
Vista
Network:
Windows XP
Database:
Jet/Access Engine
Application:
Desktop
Miscellaneous
Thread ID:
01502760
Message ID:
01502771
Views:
45
>>Check out the following tests
>>Testconnections2 returned 0.23 seconds, Testconnections3 returned 4.68 seconds, that's a factor of 20 slower. If there is any pooling done here, it's either not working for me, or it's kind of not very effective.
>>What am I missing?
>>
>>    Public Sub testConnections2()
>>        Dim cmd As New OleDbCommand
>>        Dim da As New OleDbDataAdapter(cmd)
>>        Dim conn As New OleDbConnection
>>        Dim dt As New DataTable
>>        conn.ConnectionString = My.Settings.b040_beConnectionString
>>        conn.Open()
>>        cmd.Connection = conn
>>        Dim n As Long
>>        Dim t As Date = Now
>>        For i As Integer = 1 To 100
>>            cmd.CommandText = "select Art_id from Artikel where Art_nr = '  125'"
>>            n = cmd.ExecuteScalar()
>>            cmd.CommandText = "select * from artikel where Art_Nr = '  125'"
>>            da.Fill(dt)
>>        Next
>>        Debug.Print((Now() - t).ToString)
>>    End Sub
>>    Public Sub testConnections3()
>>        Dim cmd As New OleDbCommand
>>        Dim da As New OleDbDataAdapter(cmd)
>>        Dim conn As New OleDbConnection
>>        Dim dt As New DataTable
>>        conn.ConnectionString = My.Settings.b040_beConnectionString
>>        cmd.Connection = conn
>>        Dim n As Long
>>        Dim t As Date = Now
>>        For i As Integer = 1 To 100
>>            conn.Open()
>>            cmd.CommandText = "select Art_id from Artikel where Art_nr = '  125'"
>>            n = cmd.ExecuteScalar()
>>            cmd.CommandText = "select * from artikel where Art_Nr = '  125'"
>>            da.Fill(dt)
>>            conn.Close()
>>        Next
>>        Debug.Print((Now() - t).ToString)
>>    End Sub
>>
>
>Look at it the other way:
>testConnection2 opened the connection once and took .23
>Assuming testConnection3 also took .23 the first time then the next 99 took only 4.45 i.e ~ .045 per connection = 5 times faster.


I think that if you take the code below out of the loop you'll have a better idea of the time conn.Open() takes after the first time

testConnection2 = time to open once
testConnection3 = test to open a hundred times
>            cmd.CommandText = "select Art_id from Artikel where Art_nr = '  125'"
>            n = cmd.ExecuteScalar()
>            cmd.CommandText = "select * from artikel where Art_Nr = '  125'"
>            da.Fill(dt)
Gregory
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform