-
SQL - Materialized Query Tables
Hallo,
wir sind gerade dabei ein BI-System aufzubauen. Um relativ performant auf die Daten unserer Maschine zugreifen zu können, wollte ich die relevanten Daten über MQTs extrahieren. Allerdings ist es bei uns so, dass viele Daten über User Defined Functions (UDF) zu ermitteln sind. Jetzt scheint es aber so zu sein, dass man in MQTs keine UDFs verwenden darf. Ich erhalte zumindest immer eine diesbezügliche Fehlermeldung.
Gibt es eine Möglichkeit diese Einschränkung irgendwie zu umgehen? Oder soll ich statt der MQTs doch normale Tables erstellen? Was würdet Ihr empfehlen?
Viele Grüße,
KM
-
Ob MQTs UDFs können, weiß ich nicht. Aber ich meine, MQTs können nicht automatisch live gehalten werden. Das kann nur im Abstand von ein paar Minuten geschehen, meine ich. Das hat uns immer gestört.
Die Kollegen haben bei uns ein BI System aufgebaut, indem Sie eine eigene DataWarehouse Daten-Bibliothek gebaut haben. Die wird bei uns durch permanent pollende Jobs aktuell gehalten. Mir persönlich gefällt das System aber nicht so gut. Aus heutiger Sicht würde ich versuchen, in meiner normalen Datenumgebung lieber die benötigten Werte zu cachen. Die meisten Werte kann man ja direkt per SQL holen. Einige müssen aber immer teuer berechnet werden. Ich würde versuchen, diese "teuren" Wert zu cachen. Dann kann auch die normale Datenumgebung schnell auf die Werte zugreifen.
Aber wenn du das vernünftig mit den MQTs hinbekommst, sag bitte nochmal Bescheid. Vielleicht können wir und da ja auch noch verbessern.
Dieter
-
Zitat von dschroeder
Ob MQTs UDFs können, weiß ich nicht. Aber ich meine, MQTs können nicht automatisch live gehalten werden.
Dieses Feature des Live-Updates gibt es nur bei DB2 LUW.
Auf der IBM i dürfte der Gedanke sein, dass diese wirklich nur für Bereiche verwendet werden wo die Daten nicht aktuell sein müssen.
Hab schon paar mal mit IBM & Common Europe kommuniziert um u.a. auch dieses Feature zu bekommen. Allerdings ohne Erfolg.
Es gibt aber auch Möglichkeiten Indice mit integrierten SQL Funktionen erstellen zu lassen.
Das wäre dann so ne Art Workarround.
-
Zitat von andreaspr@aon.at
Es gibt aber auch Möglichkeiten Indice mit integrierten SQL Funktionen erstellen zu lassen.
Das wäre dann so ne Art Workarround.
Geht aber nur mit integrierten Funktionen, nicht mit UDFs, oder?
Dieter
-
Stimmt, es gehen nur Funktionen wie UPPER usw.
-
Manchmal wird es günstiger, ein echtes BI-System einzuführen.
Dann hat man sehr viel mehr Möglichkeiten als mit Query oder Web-Query.
Zumal beim Import in ein DWH die UDF's dann verwendet werden können.
-
Nur so eine Frage: Sind MQTs wirklich unbedingt erforderlich?
Hast Du schon versucht mit Hilfe von Views - gesichertes (komplexes) SQL-Statement und Indices insbesondere EVI (Endocoded Vector Indices) mit Include-Anweisungen performant an die Daten zu kommen?
Hier ein Artikel zum Thema EOA (Encoded Vector Index Only Access):
Encoded-vector index (EVI) only access in IBM DB2 for i
Birgitta
-
Da es sich hier ja um die UDF's handelt gewinne ich mit Views auch nicht mehr Performance als mit den ggf. jetzt schon durchgeführten Queries da die UDF's ja in die View eingebettet werden müssen.
Um schnell auf die Daten zuzugreifen muss man hier tatsächlich regelmäßig aus den Daten neue vollständige Tabellen aufbauen. Hierbei sind natürlich weitere Gesichtspunkte aus Performancegründen zu berücksichtigen:
- muss ich immer alles neu aufbauen?
- reicht ggf. ein partieller Neuaufbau mit vorherigem Delete eines bestimmten Zeitraumes?
Ein Beispiel:
Um den Umsatz in DWH zu schieben muss ich nicht immer alles neu aufbauen. Wenn ich weiß, das z.B. max. bis zum 1. des Monats rückwärts fakturiert wird, lösche ich die Daten ab 1. des Monates und bau ab da neu auf.
Der Auftragsbestand ändert sich ja grundsätzlich und ist daher eher immer vollständig neu aufzubauen.
Das ist z.B. das Prinzip, dass ich mit unserer BI-Lösung durchführe.
-
Zitat von Fuerchau
Da es sich hier ja um die UDF's handelt gewinne ich mit Views auch nicht mehr Performance als mit den ggf. jetzt schon durchgeführten Queries da die UDF's ja in die View eingebettet werden müssen.
Ohne Analyse kannst Du das doch gar nicht wissen!!
Vielleicht sind die UDFs auch gar nicht der Grund, sondern fehlende Indices (Binary Radix Tree und/oder EVIs)
Vielleicht sind die UDFs nicht notwendig oder werden die Spalten mit den UDFs nicht ausgewählt.
Vielleicht können sowohl die SELECT als auch die UDFs für eine bessere Performance umgeschrieben werden (z.B. keine UDFs oder Skalaren Funktionen auf der linken Seite der Vergleichsoperatoren in den WHERE-Bedingnungen)
Birgitta
-
"Allerdings ist es bei uns so, dass viele Daten über User Defined Functions (UDF) zu ermitteln sind."
Nun glaube ich KM in der Hinsicht, dass er bereits geprüft hat, in wie weit seine UDF's durch native SQL's ersetzt werden können.
Sicherlich mag die eine oder andere UDF inzwischen einfacher mit scalaren Funktionen realisierbar sein, aber das steht hier ja nicht zur Debatte.
Ich kann mir auch vorstellen, dass die UDF's selber inzwischen durch Cache-Funktionen zu beschleunigen sind. Aber auch das war hier nicht die Frage.
Dazu müsste KM z.B. eine UDF beschreiben, was diese denn nun leistet.
Betrachte ich z.B. die Infor-Anwendung, so baue ich hier gerne Wrapper um bestehende Infor-Routinen die mit Native-IO irgendwas zaubern und mir ein Ergebnis liefern (z.b. Preisfindung).
Dies werde ich nie und nimmer per scalaren SQL's realisieren können.
-
Mal so ganz blöd gefragt: Braucht ihr wirklich Tagesaktuelle Werte oder reichen nicht die vom Vorabend?
GG
-
Wie Birgitta schon sagte, wenn man nicht die genaue Situation kennt ist es schwer genaue Aussagen zu treffen.
Manchmal - wenn man sich erst einmal ansieht, was das eigentliche Ergebnis sein soll - ist es durchaus möglich durch eine Umstrukturierung der gesamten Abfrage jede menge an Performance zu gewinnen.
Aber dazu ist es halt hin und wieder erforderlich eine etwas detailliertere Analyse zu starten.
Man muss nicht immer sofort mit Kanonen auf Spatzen schießen.
Similar Threads
-
By JonnyRico in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 31-03-03, 16:21
-
By Fuerchau in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 06-02-03, 16:22
-
By Mädele in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 09-12-02, 12:56
-
By Stefan_R in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 14-12-01, 13:06
-
By delphix in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 21-11-01, 16:24
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