Hallo alle zusammen,
ich bin in der Ausbildung zum Anwendungsentwickler und stehe vor einem (für mich) recht komplizierten Problem.Die Software die mein Betrieb erstellt benutzt zum speichern der Daten eine DB2-Datenbank. Da für eine Funktion die Summe diverse Datensätze mehrere Tabellengefordert wird deren Berechnung mehrere Sekunden dauert, möchte ich die Ergebnisse nun in einer weiteren Tabelle zwischenspeichern.
Den Zugriff auf die zwischengespeicherte Summe stelle ich über eine Scalar-Funktion bereit diedie Summe aus der Tabelle ausliest oder sofern noch keine zwischengespeicherter Wert vorhanden ist direkt berechnet. Sollte letzteres der Fall sein möchte ich den berechneten Wert innerhalb dieser Funktion in der "Cache"-Tabelle speichern um bei erneuten Zugriffen die Zugriffszeit zu beschleunigen und die Berechnung zu überspringen.
Letztendlich bin ich auf Table-UDFs gestoßen die mir das verändern von Tabellen (in meinem Fall einen INSERT) erlauben. Da der Rückgabewert dieser Funktion eine Tabelle ist, habe ich vor diese UDF in einem Viewmit den anderen relevanten Tabellen zu joinen was in einem Test-SELECT-Statement auch einwandfrei funktioniert. Sobald ich aber einen VIEW erstellen möchte werde ich von DB2 darauf hingewiesen, dass ich keine modifizierende Table-UDF in einer VIEW-Definition verwenden darf.
Leider habe ich nun keinen Ansatz mehr dieses Problem zu lösen. Ich habe gehofft in einem Datenbankforum wie diesem einige Ansätze zur Problemlösung zu finden.
Sollte also jemand mein Problem verstanden haben würde ich mich auf eine Rückmledung und ggf. eine Idee wie ich dieses lösen könnte sehr freuen.
Vielen Dank im voraus
ich bin in der Ausbildung zum Anwendungsentwickler und stehe vor einem (für mich) recht komplizierten Problem.Die Software die mein Betrieb erstellt benutzt zum speichern der Daten eine DB2-Datenbank. Da für eine Funktion die Summe diverse Datensätze mehrere Tabellengefordert wird deren Berechnung mehrere Sekunden dauert, möchte ich die Ergebnisse nun in einer weiteren Tabelle zwischenspeichern.
Den Zugriff auf die zwischengespeicherte Summe stelle ich über eine Scalar-Funktion bereit diedie Summe aus der Tabelle ausliest oder sofern noch keine zwischengespeicherter Wert vorhanden ist direkt berechnet. Sollte letzteres der Fall sein möchte ich den berechneten Wert innerhalb dieser Funktion in der "Cache"-Tabelle speichern um bei erneuten Zugriffen die Zugriffszeit zu beschleunigen und die Berechnung zu überspringen.
Letztendlich bin ich auf Table-UDFs gestoßen die mir das verändern von Tabellen (in meinem Fall einen INSERT) erlauben. Da der Rückgabewert dieser Funktion eine Tabelle ist, habe ich vor diese UDF in einem Viewmit den anderen relevanten Tabellen zu joinen was in einem Test-SELECT-Statement auch einwandfrei funktioniert. Sobald ich aber einen VIEW erstellen möchte werde ich von DB2 darauf hingewiesen, dass ich keine modifizierende Table-UDF in einer VIEW-Definition verwenden darf.
Leider habe ich nun keinen Ansatz mehr dieses Problem zu lösen. Ich habe gehofft in einem Datenbankforum wie diesem einige Ansätze zur Problemlösung zu finden.
Sollte also jemand mein Problem verstanden haben würde ich mich auf eine Rückmledung und ggf. eine Idee wie ich dieses lösen könnte sehr freuen.
Vielen Dank im voraus