Session Sequences in Oracle Database 12c Release 1 (12.1)
Use sequences whose current value is not persisted between sessions in Oracle database 12c Release 1 (12.1).
oracle 12cconfigurationintermediate
by OracleDba
13 views
Use sequences whose current value is not persisted between sessions in Oracle database 12c Release 1 (12.1).
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
DROP SEQUENCE my_global_sequence;
DROP SEQUENCE my_global_sequence_2;
DROP SEQUENCE my_session_sequence;
-- Global Sequence
CREATE SEQUENCE my_global_sequence;
CREATE SEQUENCE my_global_sequence_2 GLOBAL;
-- Session Sequence
CREATE SEQUENCE my_session_sequence SESSION;
SQL> CONN test/test@pdb1
Connected.
SQL> SELECT my_global_sequence.NEXTVAL FROM dual;
NEXTVAL
----------
1
1 row selected.
SQL> CONN test/test@pdb1
Connected.
SQL> SELECT my_global_sequence.NEXTVAL FROM dual;
NEXTVAL
----------
2
1 row selected.
SQL>
SQL> CONN test/test@pdb1
Connected.
SQL> SELECT my_session_sequence.NEXTVAL FROM dual;
NEXTVAL
----------
1
1 row selected.
SQL> CONN test/test@pdb1
Connected.
SQL> SELECT my_session_sequence.NEXTVAL FROM dual;
NEXTVAL
----------
1
1 row selected.
SQL>1234567891011121314151617181920212223242526272829
SET SERVEROUTPUT ON
DECLARE
l_start NUMBER;
l_loops NUMBER := 10000;
l_number NUMBER;
BEGIN
l_start := DBMS_UTILITY.get_time;
FOR i IN 1 .. l_loops LOOP
l_number := my_global_sequence.NEXTVAL;
END LOOP;
DBMS_OUTPUT.put_line('Global Sequence : ' || (DBMS_UTILITY.get_time - l_start) || ' hsecs');
l_start := DBMS_UTILITY.get_time;
FOR i IN 1 .. l_loops LOOP
l_number := my_session_sequence.NEXTVAL;
END LOOP;
DBMS_OUTPUT.put_line('Session Sequence: ' || (DBMS_UTILITY.get_time - l_start) || ' hsecs');
END;
/
Global Sequence : 161 hsecs
Session Sequence: 51 hsecs
PL/SQL procedure successfully completed.
SQL>Please to add comments
No comments yet. Be the first to comment!