Announcement

Collapse
No announcement yet.

ODBC schneller als BDE

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ODBC schneller als BDE

    Hallo !

    Ich habe bisher immer mit der BDE und dem MSACCESS - Treiber
    auf eine Access 97 Datenbankzugegriffen. Da ich das ganze auch
    auf einem Webserver einsetzen wollte und die DAO nicht Thread-fähig
    ist, habe ich den ODBC-Treiber von Access 97 verwendet. Der ODBC-Zugriff
    erfolgt nicht über die BDE, sonder über die Komponentenreihe
    ODBCExpress von Korbitec.

    Dabei fiel auf, daß der Zugriff via ODBC ohne BDE 2 bis 20 mal SCHNELLER
    ist, als der Zugriff via BDE/MSACCESS. Stabiler ist es zudem auch noch.

    Nun meine verwunderte Frage: Wiese behauptet man immer,
    ODBC sei langsam ??? Ist das ein altes Vorurteil der ODBC-Anfangstage,
    daß sich bis heute hält ?

    Gruß, Combit

  • #2
    Hallo,

    getreu dem alten Techniker-Spruch "Wer viel misst, misst Mist!" kommt es auf die exakten Testbedingungen an.

    Die BDE hatte zu keiner Zeit einen <b>nativen</b> Treiber für ACCESS-Datenbanken, sondern hinter <b>MSACCESS</b> verbirgt sich nur ein SQL-Link-Treiber (<i>IDDA3532.DLL</i> oder <i>IDDA032.DLL</i>) auf die DAO-Engine von Microsoft. Es liegt auf der Hand, dass diese hintereinandergeschalteten Treiber (IDAPI -> MSACCESS -> DAO -> ACCESS) zu Lasten der Performance gehen.

    Außerdem kommt es entscheidend darauf an, <b>was</b> über <b>welche</b> Komponente gemacht wird. Auf den <i>Entwickler-Tagen 2001</i> hatte ich mehrere Beispielprojekte vorgestellt, die SELECTs und UPDATEs auf verschiedenen Wegen (ODBC, BDE, ADO, IBX) in Bezug auf die Performance untersucht haben. Je nach Zugriffsweg und Zugriffskomponente (TTable, TQuery, TStoredProc usw.) lag dabei mal die BDE, mal ODBC und im anderen Fall ADO vorn.

    Die BDE ist <i>Middle-Ware</i>, die nicht nur ein einfacher Treiber ist, sondern mehr kann (LOCAL SQL, Callbacks, Ergebnismengen als lokale Datei speichern etc.). Auch dieser Overhead kostet in bestimmten Fällen Performance.

    P.S: Beim ODBC-Treiber kommt es ab der Version 3.x der Spezifikation auf die Sorgfalt der Herstellers an, ob eine gute Performance mit einer gleichzeitig hohen Stabilität erreicht wird. Gerade Microsoft verwendet zum Beispiel für die Performance-Tests des eigenen <i>SQL Server 7/2000</i> den eigenen ODBC-Treiber, so dass dieser speziell auf Leistung getrimmt wurde.

    &#10

    Comment

    Working...
    X