scireum_mha
11-08-09, 17:11
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
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