Avoid the NOT NULL Constraint
In the PL/SQL, using the NOT NULL constraint incur a performance cost. Consider the illustration as shown below:
PROCEDURE calc_m IS
m NUMBER NOT NULL;
a NUMBER;
b NUMBER;
BEGIN
...
m := a + b;
As m is constrained by the NOT NULL, the value of the expression a + b is assigned to a temporary variable, that is then tested for the nullity. If the variable is not null, its value is assigned to m. Or else, an exception is raised. Though, if m were not constrained, then the value would be assigned to m directly. A more accurate way to write the last illustration shown below:
PROCEDURE calc_m IS
m NUMBER; -- no constraint
a NUMBER;
b NUMBER;
BEGIN
...
m := a + b;
IF m IS NULL THEN ... -- enforce constraint programmatically
END;