Performance SQL union Abfrage

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Performance SQL union Abfrage

    Hallo,

    ich habe in einer VB.Net Anwendung ein DataGridView, das mit einer SQL-Union Abfrage wie folgt gefüllt wird:



    VB.NET-Quellcode

    1. dim cnn As OleDbConnectioncnn = New OleDbConnection(<OLEDBConnecrtion>)
    2. Dim da As OleDbDataAdapter
    3. Dim ds As New DataSet
    4. Dim sSQL As String
    5. cnn.Open()
    6. sSQL = "SELECT top 100 A.time , A.value, B.value, C.value , D.value " & _
    7. "FROM archive A INNER JOIN archive B ON A.time = B.time INNER JOIN archive C ON A.time = C.time INNER JOIN archive D ON A.time = D.time " & _
    8. "WHERE A.tag=<tag1> AND B.tag=<tag2> AND C.tag=<tag3> AND D.tag=<tag4> ORDER BY A.time desc"
    9.  
    10. da = New OleDbDataAdapter(sSQL, cnn)
    11. da.Fill(ds, "Table1")
    12. Me.DataGrid.DataSource = ds
    13. Me.DataGrid.DataMember = "Table1"


    Die Abfrage dauert so etwa 30 Sekunden und ist in der Form nicht zu handeln. Habt ihr eine Idee wie man das effizienter machen kann???



    Gruß

    tompkins
    k.A. - vlt. kann man in der DB einen Index setzen oder sowas.
    Jdfs. eiglich müsstedas ratzfatz gehen - laufen annere Abfragen bei dir ordentlich zackig?

    Ich hatte jahrelang ein Installations-Problem mittm SqlServer. Das hat mir auch keiner geglaubt, wenn ich gesagt hab, der braucht 10s um die Connection zu öffnen.
    Das Prob hat sich auch nicht wirklich gelöst, sondern mit VS2008 kam ein neuer SqlServer, und der flutscht jetzt.

    vlt. liegts bei dir ja so ähnlich.

    Kannst auch einen anneren DBTreiber versuchen - OleDb soll ja nicht so dolle sein - nimmt man da heutzutage nicht was mit "ACE..."?