半个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 | 等待(**) |