The PLVtmr (PL/Vision TiMeR) package allows you to measure the elapsed time of PL/SQL code; it provides a programmatic layter around the GET_TIME function of Oracle's DBMS_UTILITY package. See Chapter 14, PLVtmr: Analyzing Program Performance for details.
 PROCEDURE turn_on;Enables the timing package. All PLVtmr programs will execute as requested.
 PROCEDURE turn_off;Disables PLVtmr. Calls to timing programs will be ignored.
 FUNCTION elapsed RETURN NUMBER;Returns the number of hundredths of seconds elapsed since last call to capture.
 FUNCTION elapsed_message   (prefix_in IN VARCHAR2 := NULL,    adjust_in IN NUMBER := 0,    reset_in IN BOOLEAN := TRUE,    reset_context_in IN VARCHAR2 := NULL)RETURN VARCHAR2;Returns a standard message format around the value returned by elapsed.
 PROCEDURE show_elapsed   (prefix_in IN VARCHAR2 := NULL,    adjust_in IN NUMBER := 0,    reset_in IN BOOLEAN := TRUE);Displays the elapsed time message returned by elapsed_message.
PLVtmr offers a set of predefined scripts and calibration programs to test comparative performances. You might find these particular programs useful; you might simply follow their example to construct your own.
 PROCEDURE calibrate;Calculates a base timing -- the amount of time required to execute the NULL statement the current number of repetitions (set through set_repetitions).
 FUNCTION base_timing RETURN NUMBER;Returns the current base timing.
 PROCEDURE func;Calculates the overhead of a function call.
 PROCEDURE cursucc;Compares the performance of implicit and explicit cursors when retrieving a row successfully.
 PROCEDURE curfail;Compares the performance of implicit and explicit cursors when failing to retrieve a row.
Copyright (c) 2000 O'Reilly & Associates. All rights reserved.