[db2] DETERMINISTIC bei CREATE FUNCTION --> Bedeutung?

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

bei User-Defined-Function gibt es die Option "DETERMINISTIC" oder "NO DETERMINISTIC". Ich verstehe leider nicht, was zum Beispiel DETERMINISTIC bedeutet. Dazu habe ich in die db2-Doku reingeschaut, aber leider nicht wirklich schlau geworden:

DETERMINISTIC or NOT DETERMINISTIC
This optional clause specifies whether the function always returns the same results for given argument values (DETERMINISTIC) or whether the function depends on some state values that affect the results (NOT DETERMINISTIC). That is, a DETERMINISTIC function must always return the same table from successive invocations with identical inputs. Optimizations taking advantage of the fact that identical inputs always produce the same results are prevented by specifying NOT DETERMINISTIC.

Könnte mir jemand bitte anhand eines kleinen Beispiels was DETERMINISTIC bei einer benutzerdefinierten Funktion bedeutet?

Vielen Dank:)

Schöne Grüße aus Rheinland,

Eure Ratna
 
Steht ja eigentlich ziemlich genau da Deterministic bedeutet bei gleichem Input kommt auch immer das gleiche raus Not Deterministic ist nicht nur von der Eingabe abhängig.

Beispiel (Determenistic):
Java:
public double getSqrt(int x){
return Math.sqrt(x);
}

Beispiel (Not Deteremenistic)
Java:
public Date howLongAgo(Date date){
Date today = new Date();
Date ago = new Date(today.getTime() - date.getTime());
return ago;
}
Also bei dem ersten Beispiel kommt immer das gleiche zurück wenn die eingabe gleich ist egal wann du des übergibst wenn du 16 eingibst wird immer 4 rauskommen.

Bei dem zweiten Beispiel ist die Rückgabe abhängig vom Datum, bedeutet es gibt für den gleichen Eingabewert heute ein anderes Ergebnis zurück als Gestern.

In Verbindung mit Datenbanken ist es eine funktion wie today()(Not Deterministic) hat keine Eingabewerte gibt aber jeden Tag was anderes zurück
 
Zuletzt bearbeitet:
Hallo youza,

vielen lieben Dank. Wieder ein Stückchen schlauer geworden.

Schöne Grüße aus Rheinland,

Eure Ratna
 

Neue Beiträge

Zurück