Domino 9 und frühere Versionen > Entwicklung

Oracle und Domino über LC LSX...

(1/2) > >>

ToniTester:
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

koehlerbv:

--- Zitat von: ToniTester am 15.10.04 - 07:05:59 ---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.
--- Ende Zitat ---

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

ToniTester:
... 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

Semeaphoros:
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

ToniTester:
 ;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

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln