11-05-2012, 16:31
Merhaba arkadaşlar;
DAO ile Ado.Net OLEDB yi bir yarıştırayım dedim.
Wpf ile yaptım ve Framework 4 ister
Sonuçlar ilginç, hem de çok ilginç. biri birine nerdeyse tam 20 kat fark atıyor.Bir hata mı var yapıyorum diye de düşünmedim değil ama direkt access üzerinde Dao ile debug.print yapsam da örnekteki süreyle nerdeyse aynı sonucu alıyorum.Aşağıya direkt Access üzerinden test yapabilmeniz için dao kodunu da vereceğim.
Not: Örnekte varsayılan olarak 10.000 kayıt üzerinden test yapılıyor ama örnekteki kayıt sayısı kutusundan bu sayıyı değiştirebilirsiniz. Tabloda toplam 100.000 kayıt vardır.
Not2: Program başlığında Dao vs OleDb yazar yanlış olmuştur. Dao vs Ado.Net olmalıydı
Access üzerinden test için DAO kodu.. Module kaydedin ve F5 basın. Immediate penceresinde çıkacaktır. Immediate yoksa CTRL+G basınız.
Projedeki Vb.Net kodlarım ise aşağıdaki gibidir.
DAO ile Ado.Net OLEDB yi bir yarıştırayım dedim.
Wpf ile yaptım ve Framework 4 ister

Sonuçlar ilginç, hem de çok ilginç. biri birine nerdeyse tam 20 kat fark atıyor.Bir hata mı var yapıyorum diye de düşünmedim değil ama direkt access üzerinde Dao ile debug.print yapsam da örnekteki süreyle nerdeyse aynı sonucu alıyorum.Aşağıya direkt Access üzerinden test yapabilmeniz için dao kodunu da vereceğim.
Not: Örnekte varsayılan olarak 10.000 kayıt üzerinden test yapılıyor ama örnekteki kayıt sayısı kutusundan bu sayıyı değiştirebilirsiniz. Tabloda toplam 100.000 kayıt vardır.
Not2: Program başlığında Dao vs OleDb yazar yanlış olmuştur. Dao vs Ado.Net olmalıydı

Access üzerinden test için DAO kodu.. Module kaydedin ve F5 basın. Immediate penceresinde çıkacaktır. Immediate yoksa CTRL+G basınız.
Visual Basic
- Sub DAOBB()
- Dim db As DAO.Database
- Dim rst As DAO.Recordset
- Dim sorgum As String
-
- Set db = CurrentDb()
-
- sorgum = "SELECT top 10000 isim " & _
- "FROM Tablo1 "
- Set rst = db.OpenRecordset(sorgum)
-
- Do While Not rst.EOF
- Debug.Print rst(0)
- rst.MoveNext
- Loop
-
- Debug.Print "Toplam Satır: " & rst.RecordCount
- rst.Close
- Set rst = Nothing
-
- End Sub
Projedeki Vb.Net kodlarım ise aşağıdaki gibidir.
vb.net
- Imports Microsoft.Office.Interop
- Imports dao
- Imports System.Data.OleDb
- Imports System.Data
-
- Class MainWindow
-
-
- ' Berkant Öztürk [Access-Sql.com]
-
-
- Private Sub BtnKayitAl_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles BtnKayitAl.Click
-
- TxtSure.Text = ""
- LstKayit.Items.Clear()
- Dim baslangic As DateTime = DateTime.Now
- Dim myacc As New Access.Application
- Try
-
-
-
-
- myacc.OpenCurrentDatabase(Environment.CurrentDirectory & "\beab.mdb")
-
- Dim db As dao.Database
-
- Dim rst As dao.Recordset
-
-
-
-
- db = myacc.CurrentDb()
-
-
- rst = db.OpenRecordset(sorgum)
-
- Do While Not rst.EOF
- LstKayit.Items.Add(rst(0).Value)
-
- rst.MoveNext()
- Loop
-
-
-
- rst = Nothing
-
- Dim bitis As DateTime = DateTime.Now
-
- Dim fark As TimeSpan = bitis - baslangic
-
- TxtSure.Text = (fark.TotalMilliseconds.ToString & " milisaniye")
-
-
- Catch ex As Exception
-
- End Try
- End Sub
-
-
- Public Sub Baglanalim()
-
- Dim oleCon As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=beab.mdb")
-
- Dim oleComd As OleDbCommand = New OleDbCommand(Sorgum, oleCon)
-
- Dim dtst As New DataSet()
-
- Using adpt As New OleDbDataAdapter()
- Try
- oleCon.Open()
- adpt.SelectCommand = oleComd
- adpt.Fill(dtst, "Tablo1")
- LstOleKayit.DataContext = dtst
- Catch ex As Exception
- Finally
- End Try
- End Using
-
- End Sub
-
- Private Sub BtnOleDb_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles BtnOleDb.Click
- TxtSureOle.Text = ""
- LstOleKayit.DataContext = Nothing
- Dim baslangic As DateTime = DateTime.Now
-
-
- Baglanalim()
-
-
- Dim bitis As DateTime = DateTime.Now
-
- Dim fark As TimeSpan = bitis - baslangic
-
- TxtSureOle.Text = (fark.TotalMilliseconds.ToString & " milisaniye")
-
- End Sub
-
-
- End Class
Javascript
- this.setState({sign:"Here comes the sun...."})


Yazan okuyan sağolsun, çözene saygılar. Kolaylaştırınız, zorlaştırmayınız.