![]() |
Datenbank: DB2 • Version: ? • Zugriff über: ADO
Zugriff auf IBM DB2 Datenbank mit ADO
Hallo !
Ich bin gerade dabei einen Zugriff auf eine DB2 Datenbank über das Internet zu realisieren. Das ganze erfolgt unter D7 Prof mit ADO. Es ist dabei auch notwendig einen Select über die gesamte Datenbank zu machen. Leider enthält die Datenbank über eine Million Datensätze was auf einmal geladen ein zeitliches Problem darstellt. Zuerst dachte ich, man könnte da ähnlich dem "limit" Befehl bei MYSQL die geladenen Datensätze beschränken und diese dann nacheinander abfragen. Aber etwas ähnliches gibt es bei DB2 nicht. Hat jemand Erfahrung mit DB2 und einen Tipp wie ich die Daten in kleineren Paketen anfordern kann ?? Bin für jeden Tipp dankbar. Tschau, Stephan |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Hallo Stephan,
bei großen Datenmengen stellt sich immer die Frage der Verwendung. Was soll der Benutzer mit einer Million Datensätzen anfangen? Normalerweise präsentiert man nur eine überschaubare Datenmenge. Wenn du ein wenig Hintergrundinformationen gibst, dann gibt es bestimmt auch ein paar zielführende Ratschläge. Grundsätzlich musst du bei größeren DataSets darauf achten, dass der DB-Cursor nicht auf deinem Client verwaltet wird, sonst werden wirklich alle Tupel zuerst dorthin geschickt. Grüße vom marabu |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Zitat:
Eine solche datenmeneg wäre auch in einem lokalen Netzwerk ein Problem. Du solltset überprüfen, wie du die benötigte Datenmenge einschränkst. |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Okay,
sorry das ganze etwas konkreter: Also das Programm führt einen Abgleich zwischen einer DB2 Datenbank und einer MYSQL Datenbank druch. Quasi so eine Art Sicherheitsbackup. Es überprüft ob der Datensatz der DB2 Datenbank in der MYSQL Datenbank vorhanden ist und ob er verändert wurde. Entweder gibts dann einen Update der Datenbank oder der gesamte Datensatz wird bei Nichtvorhandensein in die MYSQL Datenbank eingefügt. Das ganze ist sehr flexibel gehalten, das heisst der Anwender bestimmt welche Datenbank mit MYSQL abgeglichen wird. Wir haben reell jetzt schon einen Anwender mit über 600000 Datensätzen und ein Bekannter meinte er hätte in dem Benutzerkreis eben auch noch grössere Datenbanken gesehen. Damit ich dann wirklich das Vorhandensein eines DB2 Datensatzes in der MYSQL Datenbank ermitteln kann macht das Programm einen select * auf DB2 und geht dann Datensatz für Datensatz durch. Oder gibt es noch einen anderen Weg zum Abgleich zwischen den beiden Datenbanken auf den ich, warum auch immer, noch nicht gekommen bin ? Bis dann, Stephan |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Zitat:
![]() Zitat:
Zitat:
![]() Suchbegriff war ![]() |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Ach ja, ich habe vergessen zu erwähnen:
Diese Datenbank mit 1 Million Datensätzen ist eine Testdatenbank um einfach mal den Worst Case durchzuspielen. Ich will ja dann beim Anwender keine Überraschungen erleben..... |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Zitat:
Zitat:
(Nicht lachen). Aber ich werde mich mal damit auseinandersetzen.... Ich habe auch schon versucht im SQL Befehl mit "Declare Cursor" ( habe ich von der IBM Page ) einen Cursor zu definieren. Hat aber nicht geklappt, warscheinlich habe ich da was falsch verstanden.... Zitat:
Datenbanksysteme verwenden oder ? Die Suche über google mit den Stichwörtern von oben hat mir nur Hinweise auf "fetch first" oder die random() Funktion gebracht. Ich will aber weder immer nur die ersten xxx Datensätze von DB2 noch einen zufälligen Datensatz. Gut, aber wie gesagt: Die Cursorsache werde ich mir mal zu Gemüte führen..... Danke, Stephan |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Zitat:
Wenn es nur um den Abgleich geht, wäre u.U. ja nicht der ganze Datensatz an den Client zu übertragen, vielleicht würde da die Kombination ID und Hash reichen. |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Zitat:
Stell mal die W-Frage zu ADO. |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Zitat:
enorm vielen Datensätzen ? Ich meine die abzufragende Datenbank bleibt ja gleich. Nur die Art des Zugriffs ändert sich. Habe ich mit Zeos bei DB2 andere Möglichkeiten ? ( Mal davon abgesehen das es warscheinlich generell schneller als ADO ist ... ) |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Moin moin,
wenn Du ein LastChanged-Feld mit TimeStamp in der Quelldatenbank führen würdest, dann könntest Du eine Where-Klauasel darauf ansetzen. Das dürfte die Datenmenge pro Lauf dramatisch reduzieren. Grüße // Martin PS: ZEOS ist deutlich schneller. Im Wesentlichen ist es aber eine Arbeitserleichterung für Dich, da Du nur mit einem Zugriffskomponententyp zutun hast. |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Zitat:
Ob Zeos im Vergleich zu deinem bisherigen ADO-Zugriff schneller ist müssten ein Testprogramm herausfinden. |
Re: Zugriff auf IBM DB2 Datenbank mit ADO
Zitat:
Mensch, das ist eine gute Idee. Vielleicht kann ich meinen Kunden davon überzeugen das so zu machen. Warum bin ich da nicht drauf gekommen....... DANKE ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz