Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: ToniTester am 15.10.04 - 07:05:59
-
Hallo, ich bin gerade dabei, so eine Art Aktualisierungsmechanismus zwischen einer Notes DB und Oracle mit dem LC LSX zu bauen. Oracle ist die Quelle und die Datensätze sollen ca. wöchentlich in der Notes DB aktualisiert werden...
d.h. einmal mit SELECT alle Datensätze aus Oracle in ein RESULTSET und dann mit FETCH einen Datensatz nach dem anderen anschauen. Mit jedem der Datensätze dann aber wieder mit einem SELECT und dem entsprechenden Key in Notes nachschauen, ob der Datensatz schon da ist oder nicht. Wenn ja, dann nichts machen, wenn nein, dann erstellen.
Das ist ja an sich recht einfach ::) , wenn da nicht an die 200.000 SELECT Statements abgesetzt werden müssten und (mein Testserver) ziemlich in die Knie geht.
Hab ich da was wesentliches übersehen? Geht das auch einfacher, schneller, effizienter ???
Danke & Gruß
Toni
-
Mit jedem der Datensätze dann aber wieder mit einem SELECT und dem entsprechenden Key in Notes nachschauen, ob der Datensatz schon da ist oder nicht. Wenn ja, dann nichts machen, wenn nein, dann erstellen.
Das ist ja an sich recht einfach ::) , wenn da nicht an die 200.000 SELECT Statements abgesetzt werden müssten und (mein Testserver) ziemlich in die Knie geht.
SELECT in Notes ? Das hört sich jetzt irgendwie so "von aussen herum" an ... Wenn Du eine entsprechende Ansicht mit Deinem eindeutigen Key / Deinen eindeutigen Keys hast und darüber ein GetDocumentByKey ausführst, dann sollte die Sache recht performanent laufen, da dabei auf interne Indizes zugegriffen wird.
HTH,
Bernhard
-
... bin mir da ehrlich gesagt nicht so sicher. Immerhin kann ich auf meinem (kleinen) Testserver mit "LC_Connection.Insert" innerhalb von 20 Minuten 200.000 ORACLE Datensätze als Notes Docs erzeugen.
Ob 200.000 mal GetDocumentByKey gegenüber 200.000 mal SELECT Statements die Sache wirklich vorwärtsbringt... ? Aber vielleicht hast du recht, einen Test ist es auf jeden Fall wert.
Gruß, Toni
-
Würde mich sehr überraschen, wenn der Select schneller wäre als GetDocumentByKey, wenn Du mit dem Select auf die Notes Daten zugreifst, schliesslich geht das über einen externen Treiber und über doppelte Konvertierung
-
;D Stimmt. Mit dem SELECT Statement hat er in über einer Stunde nur schlappe 80.000 Einträge gemacht. Und ein andermal ist er abgestürzt. Mit GetDocumentByKey lief er nur ca. 25 Minuten und hat satte 200.000 Lookups gemacht und auch 200.000 neue Docs erstellt.
Interessant war aber außerdem, dass das Erstellen neuer Docs mit LC_Connection.Insert etwa 10 Minuten schneller lief als ein db.createDocument, doc.form=...., doc.field=... und doc.save.
Danke& Gruß
Toni
-
Hochinteressant, danke für diese Zahlen.