Farbschema: Hell
Sie befinden sich hier: start » sl » Dokumentacija » Integracija podatkov in dostop do podatkov » Gonilnik WKL OData ODBC » Navodila za gonilnik OData ODBC » Hitro branje velikih množic iz povezanih tabel

Hitro branje velikih množic iz povezanih tabel

Koda, ki povezano tabelo prebere od začetka do konca – izvoz, preverjalna zanka, poročilo v VBA –, je prek gonilnika občutno počasnejša, če odpre dynaset. S posnetkom (snapshot) prebere iste vrstice v delčku časa.

Pregled rešitve

Access (ACE) povezano tabelo bere na dva načina, prek gonilnika enako kot prek gonilnika ODBC SQL Serverja:

  • Posnetek (dbOpenSnapshot; poročila, kombinirana polja): en stavek, vrstice gonilnik pridobi po straneh.
  • Dynaset (dbOpenDynaset; obrazci, podatkovni listi): najprej samo ključi, nato vsako prikazano vrstico posebej z … WHERE "ID" = ?. Prek gonilnika iz tega nastane po ena zahteva storitvi na vrstico.

Obrazec pridobi samo vrstice, ki jih prikaže, zato zamik ni opazen. V zanki prek vseh vrstic pa vsaka vrstica pomeni lastno zahtevo s stalnim časom zahteve HTTP. Posnetek se temu izogne.

Izvedba

  1. Nabore zapisov, ki jih samo berete, odprite kot posnetek:

    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT Nummer, Bezeichnung FROM Artikel WHERE Gruppe = 'S'", dbOpenSnapshot)
    Do Until rs.EOF
        ' … obdelava …
        rs.MoveNext
    Loop
    rs.Close
  2. Stolpce in vrstice omejite v stavku: pogoj in seznam stolpcev se pošljeta storitvi, ki vrne samo ustrezne vrstice.
  3. Berite z MoveNext, ne z GetRows; glejte napotke.

Rezultat: posnetek prebere vse vrstice z nekaj zahtevami, dynaset pa potrebuje po eno za vsako obiskano vrstico. V omrežju vsaka zahteva doda svoj čas povratne poti; pri dynasetu torej vsaka vrstica.

Napotki

  • GetRows lahko ob napaki pri nadaljnjem branju obvisi – s katerim koli gonilnikom ODBC; glejte Access obvisi pri GetRows.
  • Spoje dveh povezanih tabel Access pošlje kot en stavek; brez naslova za lastne stavke ne uspejo, glejte "ODBC--call failed" pri vsotah ali spojih.
  • Stiskanje največ prihrani pri počasnih povezavah; gonilnik odgovor sam razširi, če ga storitev stisne.

Sorodne teme

sl/wiki/data-conectivity/odata-odbc/how-to/read-large-sets.txt · Zuletzt geändert: von Wolfgang van der Stille