Announcement

Collapse
No announcement yet.

brutale netzlast unter ADO, wie kann man das umgehen???

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

  • brutale netzlast unter ADO, wie kann man das umgehen???

    hallo,<br><br>
    ich habe eine datenbankanwendung:<br>
    ado, ca. 30 tabellen in access.
    die datenbak (und exe) liegt auf dem netz. kürtzlich haben wir bei messungen der netzlast festgestellt, das ca. 700 anfragen die sekunde<br>
    stattfinden. danach wollte ich die datenzugriffskomponenten besser aufteilen und habe diese in drei module aufgeteilt.<br>
    danach war die netzlast dreimal so hoch.<br>
    die verbindung findet über ODBC statt. als cursorlocation verwende ich "clUseclient" als wert für isolationlevel ist il"CursorStability"<br>
    eingestellt.<br>
    weiss jemand wie man diese netzlastwerte in vernünftige regionen verringert??? da die anwendung später auch einmal auf einem<br>
    10 mbit netzwerk laufen soll sind diese werte deutlich über dem zumutbaren.<br>
    für hilfe bin ich dankbar.<br>
    mfg<br>
    ake

  • #2
    Tja, dein Problem wird sein, dass Du Access verwendest. Access ist eine Desktop-Datenbank, welche keinerlei Intelligenz auf dem Server besitzt und damit nur maximal bis ca. 10-20 eng beieinanderliegenden User zu verwenden ist. Jede Arbeit mit der Datenbank führt dazu, dass ein Teil der MDB zum Client übertragen werden muß (File-Übertragung) um dort lokal die Arbeit auszuführen.

    Ein (aufwendige) Lösung wäre die DB in eine SQL-Datenbank (z.B. MS-SQL-Server, Oracle, ...) überzuführen, wo jetzt nur noch die benötigten Daten übertragen werden (SQL anweisung zum Server -> Ergebnis zurück).

    Aber dies wird dir auf die schnelle nicht helfen. Evtl. bringt es auf relevante Felder, nach denen oft gesucht/sortiert wird einen Index zu legen, so dass der Access-Treiber auf dem Client Zugriffsoptimierungen aufgrund des Indexs durchführen kann)

    Auch solltest Du bei Access den Cursor auf clUseServer umstellen (wurde man hier im Forum von Andreas Kosch vorgeschlagen). Evtl. bringt dies auch etwas

    Comment


    • #3
      hallo,
      <br><br>
      das mit dem cursor habe ich schon mal versucht, aber das geht nur<br>
      bei der connection problemlos. wenn ich dies bei den eigentlichen<br>
      datenmengenkomponenten mache, kommt es zu fehlern ("zugriffsverletzung...")<br>
      danke für die antwort.<br>
      mfg<br>
      andi

      Comment


      • #4
        CursorLocation auf clUseServer zu setzen, klappt nur bei TAdoQuery ..

        Comment


        • #5
          Hallo,

          die Konfiguration mit <b>clUseServer</b> sollte mit allen ADO Express-Komponenten funktionieren, wenn <b>kein</b> TDBGrid und <b>keine</b> Anzeige von mehr als einem Datensatz verwendet wird. Dies ist allerdings keine Einschränkung von ADO (Microsoft-Objekte), sondern eine interne Einschränkung von ADO Express (Borlands VCL-Komponenten).

          Was in jedem Fall bleibt, sind die Problem, die ACCESS-Datenbanken beim Netzwerkzugriffen generell haben. Ab einer bestimmten Datenbankgrösse und einer bestimmten Benutzeranzahl wird jede ACCESS-Anwendung unbrauchbar. Auch aus diesem Grund bietet <i>Microsoft ACCESS 2000</i> beim erstellen einer neuen Datenbank die Option des "modernen Datenbankformates" an (denn dann wird die <b>MSDE</b> - alias <i>SQL Server 7 Lite</i> genutzt)

          Comment


          • #6
            Hallo Andreas, <br>
            wo gibt es diese Option beim Erstellen einer neuen Datenbank? Ich kann die einfach nicht finden.

            <br><br>
            Gruss, Tobia

            Comment


            • #7
              hallo,<br>
              <br>
              erst mal danke für die beiträge. allerdings kenne ich die option <br>
              modernes datenbankformat" auch nicht. handelt es sich hierbei dann<br>
              um einen wirkliches client-server-system?<br>
              dies wäre für mich unbrauchbar, da datenbank auf novell liegen soll.<br>
              aber dennoch: wie macht man das mit dem modernen format?<br>
              <br>
              mfg
              ak

              Comment


              • #8
                Hallo,

                das "moderne" Datenbankformat ist in ACCESS 2000 über das Menü <i>Extras | Datenbank-Dienstprogramme | MDE-Datei erstellen...</i> erreichbar. Dabei wird eine "alte" MDB-Datei (für die Formulare und Berichte) und eine "neue" MSDE-Datenbank angelegt. Es gibt aber auch (wenn ich mich richtig erinnere) einen Schalter, bei dem man das Standardformat auf MSDE setzen kann. Ich bin aber heute zu faul, selbst danach zu suchen ;-

                Comment


                • #9
                  <br>Wieso muß die Datenbank auf Novell liegen?
                  <br>Was spricht dagegen einen separeten Server aufzustellen, welcher wenn es denn umbedingt sein muß täglich ein Backup auf den Novell schiebt.
                  Bei einem DB Server System ist es ohnehin von Vorteil wenn ein eigenständiger Server angeschaft wird.
                  <br>
                  <br>Ach ja ich würde noch anstatt ODBC den OLE DB Provider für Access verwenden.
                  <br>
                  <br>mfg
                  <br>p

                  Comment


                  • #10
                    Advantage Database Server. Diesen gibt es kostenlos als local-Version, von der man später noch auf die Client/Server-Variante aufrüsten kann. ADS läuft auch auf Novell.
                    weitere Informationen: http://www.advantagedatabase.co

                    Comment


                    • #11
                      Microsoft schreibt zu MDE-Dateien folgendes:
                      "Wenn Ihre Microsoft Access-Datenbank Microsoft Visual Basic-Code enthält und Sie sie als MDE-Datei speichern, werden alle Module kompiliert. Der gesamte editierbare Quellcode wird entfernt und die Zieldatenbank komprimiert. Ihr Visual Basic-Code lässt sich weiterhin ausführen, kann jedoch nicht angezeigt oder bearbeitet werden. Darüber hinaus wird Ihre Access-Datenbank durch das Entfernen des Codes kleiner, die Speichernutzung wird optimiert und dadurch die Leistung verbessert."
                      Ich frage mich nun was das mit dem MSDE-Server zu tun hat!

                      Comment


                      • #12
                        Hi,
                        <br>
                        <br>MSDE hat meiner Meinung nach nichts mit MDE zu tuen, um auf die MSDE zuzugreifen muß man in Access 2000 ein ADP Project starten (Neu/Projekt).
                        <br>
                        <br>mfg
                        <br>p

                        Comment

                        Working...
                        X