-
view-Satz eindeutig identifizieren
Hi *all
kann ich in einem create view einen eindeutigen Begriff je Satz vergeben? Habe identity column versucht, das geht aber anscheinend nur bei create table. Lass ich mir im SQL mit RRN(viewname) die Satznr anzeigen, so ist das die Satznr. der 1. Datei und daher manchmal doppelt. Ich suche aber die möglichkeit genau einen 'Satz' der view anzusprechen.
Ich weiß natürlich, das sich die View immer dann ändert, wenn sich in der View verbundene Dateien ändern.
Hat jemand eine Idee ?
Gruß Robi
-
Hallo,
das SQL Construct dafür ist eigentlich select distinct ...
dann bekommst du immer einen Satz. Was hast du denn wirklich vor?
mfg
Dieter Bender
 Zitat von Robi
Hi *all
kann ich in einem create view einen eindeutigen Begriff je Satz vergeben? Habe identity column versucht, das geht aber anscheinend nur bei create table. Lass ich mir im SQL mit RRN(viewname) die Satznr anzeigen, so ist das die Satznr. der 1. Datei und daher manchmal doppelt. Ich suche aber die möglichkeit genau einen 'Satz' der view anzusprechen.
Ich weiß natürlich, das sich die View immer dann ändert, wenn sich in der View verbundene Dateien ändern.
Hat jemand eine Idee ?
Gruß Robi
-
Einen eindeutigen Schlüssel bekommst du nur, wenn auch 1 oder mehrere Felder in Kombination eindeutig sind (analog eines UNIQUE-Key's). Da eine View nicht statisch ist, kannst du keine ID generieren.
Alternativ ist eine UDF (User defined Function) die beim Init (1. Aufruf) eine Zähler startet und bei jedem Aufruf erhöht (Arbeitsbereich der UDF).
Allerdings kann dieser Wert in keiner Weise als Zugriff dienen.
-
 Zitat von Robi
Hi *all
kann ich in einem create view einen eindeutigen Begriff je Satz vergeben? Habe identity column versucht, das geht aber anscheinend nur bei create table. Lass ich mir im SQL mit RRN(viewname) die Satznr anzeigen, so ist das die Satznr. der 1. Datei und daher manchmal doppelt. Ich suche aber die möglichkeit genau einen 'Satz' der view anzusprechen.
Ich weiß natürlich, das sich die View immer dann ändert, wenn sich in der View verbundene Dateien ändern.
Hat jemand eine Idee ?
Gruß Robi
Wenn Du mehrere Dateien joinst, kannst Du auch für jede Datei die relative Satz-Nr. abfragen. Dein eindeutiger Schlüssel besteht dann aus der Kombination dieser relativen Satz-Nr.
PHP-Code:
Create View MySchema/MyView as
Select RRN(a), RRN(b), a.*, b.*
from FileA a join FileB b on a.Key1 = b.Key1
Es gibt auch noch andere Möglichkeiten eine laufende Nummerierung zu erhalten.
Aber alle diese Möglichkeiten führen zu einer extrem bescheidenen Performance, da Indices nur über Spalten in den Basis-Dateien gebildet werden können. Wenn Du also auf solche Konstrukte oder die relative Satz-Nr. zugreifen möchtest, wird wahrscheinlich für jede einzelne Datei ein Table Scan durchgeführt und das dauert u.U. wenn so ein paar Millionchen Sätze in den Dateien vorhanden sind.
Wenn die einzelnen Dateien jeweils einen unique key haben, so ist der eindeutige Schlüssel in deiner View die Kombination aller dieser Schlüssel-Felder. Greifst Du damit zu, kann der Optimizer die unique constraints oder Indices verwenden um auf die Dateien zuzugreifen.
Birgitta
-
Danke
@Dieter
Eine View wird im Subfile angezeigt, ein 'Satz' wird ausgewählt und an Standard Pgm übergeben. Normalerweise nur die Satznr., und das Standard Programm liest nach. Also brauche ich soetwas wie eine eindeutige Satznr.
(das mit dem distinct is bekannt, geht hier aber nicht)
@Fuerchau
Wenn der Wert nicht als Zugriff dienen kann, nützt es mir leider nix, schade
@Brigitta
Könnte gehen. geht dan folgendes ?
Create View MySchema/MyView as
Select RRN(a) as RRnA, RRN(b) as RRnB, a.*, b.*
from FileA a join FileB b on a.Key1 = b.Key1
select * from MySchema/MyView where RRna=12345 and RRnB=6789
Ist das schnell genug ?
gruß
Robi
-
Genau das ist doch das Problem !
Beim Suchen über RRN wird die gesamte Tabelle gescant, da es keinen Zugriffspfad nach RRN gibt.
Um also auf RRNA=12345 zuzugreifen werden 12344 Sätze gelesen. Stell dir das nun bei einem Zugriff auf RRNA=12345678 vor ?!?!?
Um SCHNELL zuzugreifen benötigst du einfach einen EINDEUTIGEN KEY ungleich RRN !
Ansonsten vergiss SQL und greif per CHAIN auf die PF. Da kannst du dann die RRN verwenden.
-
 Zitat von Fuerchau
Genau das ist doch das Problem !
Beim Suchen über RRN wird die gesamte Tabelle gescant, da es keinen Zugriffspfad nach RRN gibt.
Um also auf RRNA=12345 zuzugreifen werden 12344 Sätze gelesen. Stell dir das nun bei einem Zugriff auf RRNA=12345678 vor ?!?!?
Um SCHNELL zuzugreifen benötigst du einfach einen EINDEUTIGEN KEY ungleich RRN !
Ansonsten vergiss SQL und greif per CHAIN auf die PF. Da kannst du dann die RRN verwenden.
@Fuerchau
Kleine Korrektur es werden nicht 12344 Sätze gelesen, sondern 12345678 Sätze inclusive aller gelöschten Sätze, was noch weit schlimmer ist.
@Robi
Du hast wirklich nur die Möglichkeit beide relativen Satz-Nr. zu übergeben und dann auf die Original-Dateien mit CHAIN zuzugreifen.
-
Hmm,
Schade,
da muß ich mir wohl was einfallen lassen
Ich dank Euch trotzdem für die Antworten.
gruß
Robi
Similar Threads
-
By Franz Karl in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 20-01-07, 08:04
-
By antvik in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 02-08-06, 18:04
-
By heini in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 27-06-06, 11:34
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 17
Letzter Beitrag: 11-05-06, 14:57
-
By Robi in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 06-04-05, 16:59
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