-
Datum aus 4 x int über VIEW/TRIGGER/MQT?
Hallo die Damen und Herren,
ich stehe vor folgender Aufgabe:
Bestehendes WWS System auf System i nutzt für Datumsfelder 4 x int (Jahrhundert, Jahr, Monat, Tag).
Was für RPG Hasen dank LFs ja kein Problem darstellt ist in SQL für Range Selects extrem nervig.
Natürlich ist mir der Trick mit JH*10000+Jahr*100*Monat u.ä. geläufig. Nur schießt man ja so erfolgreich an allen Indicees vorbei was bei Bewegungsdateien mit mehreren Mio Sätzen natürlich Stimmung aufkommen läßt. Vor allem wenn man noch einige weitere Dateien hinzu joint.
Ich habe mich etwas schlau gemacht und 3 Lösungswege gefunden:
1. Neues Feld in die physische Datei und per Trigger füllen
2. Einen View definieren. Hier ist das Problem das ja in einem View wieder kein Index verwendet werden kann
3. Ein Materialized Query Table erstellen.
Das ist ja so wie ich es verstanden habe ein View der in eine neue Tabelle kopiert wird. Leider kann man diese MQT so wie ich das verstanden habe immer nur per Hand über REFRESH TABLE aktualisieren, was bei Bewegungsdateien ja recht unschön ist.
Fällt jemand noch eine weitere Lösung ein?
Wichtig ist mir eigentlich auf dem neu erstellten Datumfeld einen Index verwenden zu können, damit man performant auf Teilbereiche zugreifen kann.
So wie es mir aktuell scheint werde ich wohl nicht ums triggern herumkommen.
Freue mich schon auf Anregungen
freundliche Grüße
M.Haufler
-
Neues Feld in der Datei und Trigger ist wohl die beste Lösung.
Ist die Datei eine PF oder eine SQL-Table ?
Wird die Datei nur mit SQL bearbeitet kannst du ein Feld problemlos hinzufügen. Mit RLA musst du leider alle Programme wandeln.
Alternativ kann man eine 2. Datei füllen, die dann neben dem Datum auch einen Unique-Key-Verweis enthalten muss.
Mit der 2. Datei kann man allerdings auch nicht garantieren, ob SQL dann auch den zugeordneten Index verwendet.
-
Ab Release 6.1 ist es auch möglich in SQL Indices zusätzliche Spalten zu definieren und über diese Spalten einen Schlüssel zu legen.
Damit hat sich dann das Problem mit Trigger, View oder MQT erledigt.
Trigger ist allerdings vor Release 6.1 das kleinste Problem. Zwar gibt es aufgrund des dynamischen Aufruf einen Overhead, aber der kann im Vergleich zu den anderen Methoden vernachlässigt werden.
Vor 6.1 kann der Query Optimizer nur Indices die über unveränderte existierende Spalten gebildet wurden verwenden. Damit kann man anstatt über eine View auch direkt auf die Tabelle mit dem gleichen Effekt gehen.
MQT ist eine physische Datei, die aktuell noch nicht voll augereift ist, d.h. der automatische Update funktioniert nicht. Wenn Du bei großen Dateien MQTs verwenden willst, musst Du berücksichtigen, dass die Daten komplett kopiert werden.
Birgitta
Similar Threads
-
By I0N in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 21-11-06, 12:44
-
By steven_r in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 20-11-06, 18:37
-
By heini in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 30-09-06, 10:10
-
By jjagi in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 07-07-06, 08:29
-
By JonnyRico in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 27-04-06, 12:45
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