-
SQL über zwei Partitions
Hallo Forum,
ich habe ein SQL, das die Daten von einer zweiten Partition braucht
1. Partition Firma1 - Kunden
2. Partition Firma2 - Artikel
Jetzt möchte ich die auf der Partition Firma2 die Artikel, die zu einer bestimmten Kundengruppe passen über folgendes SQL auslesen
PHP-Code:
Select Artikel, Bezeichnung, Menge, a.Kundengruppe from Mylib.Artikel a left join Firma1.Mylib.Kunden b on a.Kundengruppe = b.Kundengruppe;
im WRKRDBDIRE sind beide Partitions eingetragen, so dass beide SQL's auf der Partition Firma2 funktionieren
PHP-Code:
select * from Mylib.Artikel = funktioniert select * from Firma1.Mylib.Kunden = funktioniert auch
Wenn ich den SQL mit dem Join ausführe, dann bekomme ich folgenden Fehler:
SQL State: 56023
Vendor Code: -512
Message: [SQL0512] Anweisung verweist auf Objekte in mehreren Datenbanken. Ursache . . . . : Die Anweisung verweist auf Objekte, die sich in unterschiedlichen Datenbanken befinden. Die Objekte können entweder explizit qualifizierte Objektnamen oder Aliasnamen sein, die als Verweis auf eine andere Datenbank definiert sind. Diese SQL-Anweisung kann nur auf eine einzige Datenbank verweisen. Eine Anweisung CREATE TABLE AS, die aus einer fernen Datenbank auswählt, kann nicht auf eine Tabelle verweisen, für die eine FIELDPROC definiert ist. Sie kann keine Materialized Query Table definieren. Befindet sich die ferne Datenbank nicht auf einem IBM i-Server, sind INCLUDING-Klauseln nicht zulässig. Fehlerbeseitigung: Vergewissern Sie sich, dass sich alle in der Anweisung verwendeten Objekte in derselben Datenbank befinden. Anschließend die Anforderung wiederholen.
Hat jemand eine Idee?
Vielen Dank für eure Unterstützung
Rainer
-
Nunja, in der Theorie ganz nett, in der Praxis natürlich mit Aufwand verbunden.
Weiteres siehe hier:
https://www.ibm.com/support/knowledg.../rbal1drdh.htm
Also ohne Zusatzprodukte geht das nicht.
Ist ja auch verständlich.
Um deine Abfrage durchzuführen muss die Join-Tabelle erst mal komplett lokal kopiert werden, dann kann der Join durchgeführt werden, anschließend kann die Kopie verworfen werden.
Anders macht es z.B. auch nicht SQL-Server (Verbindungsserver) oder z.B. MS-Access.
Über die Performance darf man sich dann allerdings keine Gedanken machen.
-
Zitat von Fuerchau
Nunja, in der Theorie ganz nett, in der Praxis natürlich mit Aufwand verbunden.
Weiteres siehe hier:
https://www.ibm.com/support/knowledg.../rbal1drdh.htm
Also ohne Zusatzprodukte geht das nicht.
Ist ja auch verständlich.
Um deine Abfrage durchzuführen muss die Join-Tabelle erst mal komplett lokal kopiert werden, dann kann der Join durchgeführt werden, anschließend kann die Kopie verworfen werden.
Anders macht es z.B. auch nicht SQL-Server (Verbindungsserver) oder z.B. MS-Access.
Über die Performance darf man sich dann allerdings keine Gedanken machen.
... dieses verlinkte Produkt leistet das auch noch nicht, da müsste man erstmal permanent remote Kopien pflegen lassen, bevor man mit einem SQL drauf darf. Das Zauberwort heißt hier InfoSphere Federation Server (falls das nicht gerade wieder umbenannt wurde). Da brauchst Du allerdings noch eine nicht-Ei-DB2 und wenn Du die Preise für das Produkt siehst und den Einführungsaufwand, willst Du das nicht mehr haben...
D*B
-
Ein RPG Programm könnte die ferne Datei per DDMF lesen, ohne dass alle Daten kopiert werden müssten.
Evtl. ist dieser Ansatz einfacher?
-
... das DDMF kann noch erheblich weniger als ein SQL connect zur remote Datenbank!!!
-
Nun, wenn du per sequentiellem Read die Daten selektierst und lokal zwischenspeicherst, hast du trotzdem die gesamte Datei kopiert, auch wenn nicht alles gespeichert ist.
DDMF hat diverse Limits:
- Kein Zugriff per Schlüssel (SETLL, ...)
- Kein Zugriff per SQL
- Ausschließlich statische Definitionen zur Compilezeit
- max. 16 parallele Opens per Job
- max. 256 parallele Verbindungen per Zielsystem
Und wie Dieter schon sagte, SQL kann erheblich mehr.
Du musst dir halt nur die Mühe machen, deine SQL's selber zu zerlegen und die Daten aus den anderen Systemen partiell laden.
-
Also ich hab folgenden Workaround() im www gefunden:
https://www.itjungle.com/2012/08/08/fhg080812-story01/
Ich habs aber nicht probiert da ich keine zweite dastehen hab :-)
Grtx!
Christian
-
Das behebt nicht dein Problem, dass Queries dieser Art nicht optimierbar sind.
D.h., dass deine UDTF für die Satzauswahl per Parameter zuständig ist um dann ein Subset an Daten zu liefern, dass dann per Where/Join-Klauseln ggf. weiter eingeschränkt wird.
Einfacher sind da eher Konzepte, für ausgewählte Tabellen mit Replizierung zu arbeiten. M.a.W., die benötigten Daten der jeweils anderen Systeme lokal zu halten und regelmäßig zu aktualisieren.
-
... viel Lärm um nichts, das ging mit QMQRY schon solange ich denken kann:
1. QMQRY selektiert Daten von remote1 und schreibt in lokale Tabelle
2. QMQRY selektiert Daten von remote2 und schreibt in lokale Tabelle
3. UDTF lässt QMQRY1 und QMQRY2 laufen und joined mit lokalen Tabellen, wie immer es will.
Immer wieder erstaunlich, was man da an die DB2 Clientel immer wieder als sensationell neu verkauft.
D*B
PS: und schneller ist das wahrscheinlich auch noch...
-
@Dieter: Du machst es dir manchmal zu einfach.
Wenn es neues gibt will es auch verwendet werden.
Telefonieren konnte ich schon mit meinem Wählscheiben-Telefon und der Klingelton (Nostalgie) war schon drin. Ich brauche heute immer noch kein Smartphone.
Similar Threads
-
By B.Hauser in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 16-01-15, 15:20
-
By MB in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 16-05-03, 12:26
-
By Burgy Zapp in forum Intern - Hilfe - Feedback - Tests-Forum
Antworten: 20
Letzter Beitrag: 12-07-02, 10:52
-
By KB in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 16-05-01, 10:30
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks