由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 抛砖引玉: 谈谈SQL Server locking and blocking
相关主题
急!各位请进:process blocked by another processWhy SQL Server 7 Enterprise Manager is so slow?
请问T-SQL中Group By之后怎么找到特定的record[转载] SQL 2000不能装在win2000上吗???
SQL Server Question: how delete worksMemo Field一问
NOLOCK为什么不是蓝色的?怎么移植一个SQL server数据库
同事被FIRE掉了How to migrate a database from one sql server to another?
SQL server 2005 deadlockRe: How to migrate a database from one sql server to another?
新手请教SQL 语法问题- alias 和 joinMS SQL Server数据库更新
初级问题是学Oracle还是SQL server?
相关话题的讨论汇总
话题: server话题: sql话题: oracle话题: read话题: isolation
进入Database版参与讨论
1 (共1页)
gy
发帖数: 620
1
今天是我LD的生日, 我写点儿东东,就当是给她的生日礼物。
另外, zenny同学曾说是要写写blocking的东东, 我左等右等,望眼欲穿.
等不及了,我这块砖就先抛出来了吧。等着Zenny和其它大牛们更精彩的。
打小语文就没学好, 写不出zenny大牛那么好的东东. 各位将就着看吧.
**********************************************************************************
在一个Database Server上, 各种transaction是同时进行的, 为了保证transaction的ACID properties, SQL Server就用了一个lock manager来对各个transaction进行管理. 打个不是很恰当的比喻, 就好象十字路口的交通灯, 指挥着东南西北各方向的车通过. 也正是这样, 一个方向通过, 另一个方向的必然被block. 同样, 也就是说在SQL Server里blocking是没法避免的.
虽说blocking是没法避免的, 但是可以尽量减少it的发生, 比如, 缩短tr
gy
发帖数: 620
2
谁告诉我怎么给版面转银子呀? 我想转点银子, 让版主帮着发发. 祝我LD生日快乐呢.
嘿嘿
v*****r
发帖数: 1119
3
写的不错,补充一下:
Isolation level 是ANSI SQL 的标准,不是SQL Server 的概念。每个 rdbms 实现
Isolation level 的方式都不一样,这也是 Oracle 比 SQL Server 设计上更优异的
一个地方。举个简单的例子,Oracle 的 Undo image的概念保证了 non-blocking read
没有 dirty read 的忧虑,所以根本不需要象 SQL Sever 那样为了提高 performance
牺牲 integrity。换句话说,同样的 transaction isolation level 下 (by default
都是 Read Committed), Oracle 不需要 SQL Server 那么多 Locking,所以 Oracle
在 performance 上比 SQL Server 有先天的优势。
前几天被老板逼着去 Redmond 上了MS SQLServer 两周课,认真做了 one on one 的比
较,不可否认,SQL Server 也有些相对的优点,不过在很多地方和 Oracl
w*******e
发帖数: 1622
4
赞先!
Undo image? 是不是跟SQL Server 2005里的Snapshot isolation level是一样的呢?
这个snapshot也是no-blocking和dirty read的

read
performance
default
Oracle

【在 v*****r 的大作中提到】
: 写的不错,补充一下:
: Isolation level 是ANSI SQL 的标准,不是SQL Server 的概念。每个 rdbms 实现
: Isolation level 的方式都不一样,这也是 Oracle 比 SQL Server 设计上更优异的
: 一个地方。举个简单的例子,Oracle 的 Undo image的概念保证了 non-blocking read
: 没有 dirty read 的忧虑,所以根本不需要象 SQL Sever 那样为了提高 performance
: 牺牲 integrity。换句话说,同样的 transaction isolation level 下 (by default
: 都是 Read Committed), Oracle 不需要 SQL Server 那么多 Locking,所以 Oracle
: 在 performance 上比 SQL Server 有先天的优势。
: 前几天被老板逼着去 Redmond 上了MS SQLServer 两周课,认真做了 one on one 的比
: 较,不可否认,SQL Server 也有些相对的优点,不过在很多地方和 Oracl

v*****r
发帖数: 1119
5
不错,SQL Server 2005里的Snapshot isolation level 是试图弥补它先天不足而增加
的。确切的讲,SQL Server 2005增加了两个这方面的isolation levels: Read
Committed with Snapshots 和 Snapshot Isolation.
Read Committed with Snapshots 相当于 Oracle 的 Read Committed (default),
Snapshot Isolation 相当于 Oracle 的 Serializatable
问题是这两个都不是 SQLServer 的 default 设置,不知道有多少人用它。我前些日子
上的 SQLServer 课的 lecturer 有10+ years SQLServer DBA/developer experience,
当我问他关于 Snapshot isolation level 的问题,to my surprise, 他竟说他从未
用过,他做的所有project都是用SQLServer 的default (Read C
S***k
发帖数: 370
6
多谢.
这个交通灯的比喻太好了.管理层的人不懂,听locking变色.总以为locking是不应该有
的.以后就用你这个比喻了.
头几个月我们有一个programmer居然把所有view里的table都用了nolock hint.结果交
通就乱了套.当时实在没办法, 找了一篇痛骂nolock hint 的文章才解决问题.
http://blogs.msdn.com/davidlean/archive/2009/04/06/sql-server-nolock-hint-other-poor-ideas.aspx
v*****r
发帖数: 1119
7
There you go. Spark just show one typical mindset conflict between Oracle
developers and SQL Server developers.
SQL Server developers: We think 管理层的人不懂,听locking变色. locking is
necessary and we can't live without it. Anyone who try to use "nolock hint"
to improve performance will have to worry about Dirty Read (as "nolock hint"
just changed the Isolation Level to Read Uncomitted)
(Note: that mindset is actually true before SQL Server 2005 Yukon release.)
Oracle developers: Oracle by design achiev
z***y
发帖数: 7151
8
这种文章要置顶啊。
叽歪兄继续努力!
嗯, 我最近比较忙, 接了两个不该接的项目, 不过也好, 今年夏天就可以歇长一点
1 (共1页)
进入Database版参与讨论
相关主题
是学Oracle还是SQL server?同事被FIRE掉了
问个SQL Server version的问题SQL server 2005 deadlock
请教一下一个关于SQL SERVER非常基本的问题新手请教SQL 语法问题- alias 和 join
我安装的sqlserver 2005怎么很多功能都没有?初级问题
急!各位请进:process blocked by another processWhy SQL Server 7 Enterprise Manager is so slow?
请问T-SQL中Group By之后怎么找到特定的record[转载] SQL 2000不能装在win2000上吗???
SQL Server Question: how delete worksMemo Field一问
NOLOCK为什么不是蓝色的?怎么移植一个SQL server数据库
相关话题的讨论汇总
话题: server话题: sql话题: oracle话题: read话题: isolation