半个PostgreSQL DBA,热衷于数据库相关的技术。我的ppt分享https://pan.baidu.com/s/1eRQsdAa https://github.com/chenhuajun https://chenhuajun.github.io
分类: SQLServer
2013-09-04 01:25:45
隔离级别
|
脏读
|
不可重复读
|
幻读
|
读未提交
|
可能
|
可能
|
可能
|
读已提交
|
不可能
|
可能 |
可能 |
可重复读
|
不可能
|
不可能
|
可能
|
可串行化
|
不可能
|
不可能
|
不可能
|
名称 | SQL语句 |
单行查询 | select * from tb1 where id = 1 |
整表查询 | select * from tb1 |
插入 | insert into tb1 values(5,'b') |
单行更新 | update tb1 set name = 'b' where id = 1 |
整表更新 | update tb1 set name = 'b' |
单行删除 | delete from tb1 where id = 1 |
整表删除 | delete from tb1 |
名称 | SQL语句 |
同一行查询 | select * from tb1 where id = 1 |
非同行查询 | select * from tb1 where id = 2 |
整表查询 | select * from tb1 |
同一行插入 | insert into tb1 values(1,'c') |
非同行插入 | insert into tb1 values(6,'c') |
同一行更新 | update tb1 set name = 'c' where id = 1 |
非同行更新 | update tb1 set name = 'c' where id = 2 |
整表更新 | update tb1 set name = 'c' |
同一行删除 | delete from tb1 where id = 1 |
非同行删除 | delete from tb1 where id = 2 |
整表删除 | delete from tb1 |
名称 | SQL语句 |
同一行查询 | select * from tb1 where id = 1 |
非同行查询 | select * from tb1 where id = 100 |
整表查询 | select * from tb1 |
同一行插入 | insert into tb1 values(1,'c') |
非同行插入 | insert into tb1 values(6,'c') |
同一行更新 | update tb1 set name = 'c' where id = 1 |
非同行更新 | update tb1 set name = 'c' where id = 100 |
整表更新 | update tb1 set name = 'c' |
同一行删除 | delete from tb1 where id = 1 |
非同行删除 | delete from tb1 where id = 100 |
整表删除 | delete from tb1 |
名称 | SQL语句 |
同一行查询 | select * from tb1 where id = 5 |
非同行查询 | select * from tb1 where id = 2 |
整表查询 | select * from tb1 |
同一行插入 | insert into tb1 values(5,'c') |
非同行插入 | insert into tb1 values(6,'c') |
同一行更新 | update tb1 set name = 'c' where id = 5 |
非同行更新 | update tb1 set name = 'c' where id = 2 |
整表更新 | update tb1 set name = 'c' |
同一行删除 | delete from tb1 where id = 5 |
非同行删除 | delete from tb1 where id = 2 |
整表删除 | delete from tb1 |
先执行SQL\后执行SQL |
同一行查询 | 非同行查询 | 整表查询 | 同一行插入 | 非同行插入 | 同一行更新 | 非同行更新 | 整表更新 | 同一行删除 | 非同行删除 | 整表删除 |
单行查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
整表查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
插入 |
OK(*) |
OK | OK(*) | 等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行更新 | OK(*) | OK | OK(*) | 等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表更新 | OK(*) | OK | OK(*) | 等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行删除 | OK(*) | OK | OK(*) | 等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表删除 | OK(*) | OK | OK(*) | 等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
先执行SQL\后执行SQL |
同一行查询 | 非同行查询 | 整表查询 | 同一行插入 | 非同行插入 | 同一行更新 | 非同行更新 | 整表更新 | 同一行删除 | 非同行删除 | 整表删除 |
单行查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
整表查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
插入 |
等待(*) |
OK | 等待(*) | 等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行更新 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表更新 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行删除 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表删除 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
先执行SQL\后执行SQL |
同一行查询 | 非同行查询 | 整表查询 | 同一行插入 | 非同行插入 | 同一行更新 | 非同行更新 | 整表更新 | 同一行删除 | 非同行删除 | 整表删除 |
单行查询 | OK | OK | OK | 等待 | OK | 等待 | OK | 等待 | 等待 | OK | 等待 |
整表查询 | OK | OK | OK | 等待 | OK | 等待 | OK | 等待 | 等待 | OK | 等待 |
插入 |
等待(*) |
OK | 等待(*) | 等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行更新 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) |
OK |
等待(*) | 等待(*) | OK | 等待(*) |
整表更新 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) |
OK |
等待(*) | 等待(*) | OK | 等待(*) |
单行删除 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表删除 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
先执行SQL\后执行SQL |
同一行查询 | 非同行查询 | 整表查询 | 同一行插入 | 非同行插入 | 同一行更新 | 非同行更新 | 整表更新 | 同一行删除 | 非同行删除 | 整表删除 |
单行查询 | OK | OK | OK | 等待 | OK | 等待 | OK | 等待 | 等待 | OK | 等待 |
整表查询 | OK | OK | OK | 等待 | 等待 | 等待 | 等待 | 等待 | 等待 | 等待 | 等待 |
插入 |
等待(*) |
OK | 等待(*) | 等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行更新 | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表更新 | 等待(*) | OK | 等待(*) | 等待(*) | 等待(*) | 等待(*) | 等待(*) | 等待(*) | 等待(*) | 等待(*) | 等待(*) |
单行删除 | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表删除 | 等待(*) | OK | 等待(*) | 等待(*) | 等待(*) | 等待(*) | 等待(*) | 等待(*) | 等待(*) | 等待(*) | 等待(*) |
先执行SQL\后执行SQL |
同一行查询 | 非同行查询 | 整表查询 | 同一行插入 | 非同行插入 | 同一行更新 | 非同行更新 | 整表更新 | 同一行删除 | 非同行删除 | 整表删除 |
单行查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
整表查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
插入 |
OK(**) |
OK |
OK(**) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行更新 |
OK(**) |
OK |
OK(**) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表更新 |
OK(**) |
OK |
OK(**) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行删除 |
OK(**) |
OK |
OK(**) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表删除 |
OK(**) |
OK |
OK(**) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
先执行SQL\后执行SQL |
同一行查询 | 非同行查询 | 整表查询 | 同一行插入 | 非同行插入 | 同一行更新 | 非同行更新 | 整表更新 | 同一行删除 | 非同行删除 | 整表删除 |
单行查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
整表查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
插入 |
OK(***) |
OK |
OK(***) |
等待(*) | OK | 等待(**) | OK | 等待(**) | 等待(**) | OK | 等待(**) |
单行更新 |
OK(***) |
OK |
OK(***) |
等待(*) | OK | 等待(**) | OK | 等待(**) | 等待(**) | OK | 等待(**) |
整表更新 |
OK(***) |
OK |
OK(***) |
等待(*) | OK | 等待(**) | OK | 等待(**) | 等待(**) | OK | 等待(**) |
单行删除 |
OK(***) |
OK |
OK(***) |
等待(*) | OK | 等待(**) | OK | 等待(**) | 等待(**) | OK | 等待(**) |
整表删除 |
OK(***) |
OK |
OK(***) |
等待(*) | OK | 等待(**) | OK | 等待(**) | 等待(**) | OK | 等待(**) |