📄 db2isolationlevels.sql
字号:
-- single user test for the various isolation levels-- also notice in the runtimestatistics output that Fetch Size is 16 for various isolation levels ie we are doing bulk fetch for all isolation levels-- this will test the fix for bug 5953 - which is to enable bulk fetching for RR and serializable isolation levels as well.prepare getIsolation as 'values current isolation';autocommit off;call SYSCS_UTIL.SYSCS_SET_RUNTIMESTATISTICS(1);maximumdisplaywidth 2000;-- create a tablecreate table t1(c1 int not null constraint asdf primary key);commit;-- insert a rowinsert into t1 values 1;-- verify table scan gets row lock at read committedselect * from t1;values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();-- verify SET ISOLATION commits and changes isolation levelset isolation RR;execute getIsolation;-- rollback should find nothing to undorollback;select * from t1;values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();set isolation reset;execute getIsolation;-- verify SET ISOLATION commits and changes isolation levelset isolation read committed;execute getIsolation;-- rollback should find nothing to undorollback;select * from t1;values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();set current isolation = reset;execute getIsolation;-- verify SET ISOLATION commits and changes isolation levelset current isolation = RS;execute getIsolation;-- rollback should find nothing to undorollback;select * from t1;values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();set isolation to reset;execute getIsolation;-- verify SET ISOLATION commits and changes isolation levelset isolation = dirty read;execute getIsolation;-- rollback should find nothing to undorollback;select * from t1;values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();-- test WITH ISOLATION clauseset isolation serializable;execute getIsolation;select * from t1 with CS;values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();set isolation cursor stability;execute getIsolation;select * from t1 with RR;values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();set isolation serializable;execute getIsolation;select * from t1 with RS;values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();set current isolation to read committed;execute getIsolation;select * from t1 with ur;values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();-- unknown isolation levelselect * from t1 with rw;select * from t1 with DIRTY READ;select * from t1 with READ UNCOMMITTED;select * from t1 with READ COMMITTED;select * from t1 with CURSOR STABILITY;select * from t1 with REPEATABLE READ;select * from t1 with SERIALIZABLE;-- check the db2 isolation levels can be used as identifierscreate table db2iso(cs int, rr int, ur int, rs int);select cs, rr, ur, rs from db2iso;-- cleanupdrop table t1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -