数据库中的锁是怎么使用的?

liulonghao 2006-04-13 10:23:38
在多用户访问同一记录时,为了保持数据的一致性,用到了锁这一机制。我想问一下的是数据库中的锁是怎么使用的?
...全文
254 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liulonghao 2006-04-13
  • 打赏
  • 举报
回复
呵呵
谢谢各位
给分
viptiger 2006-04-13
  • 打赏
  • 举报
回复
SET TRANSACTION ISOLATION LEVEL
{ READ COMMITTED
| READ UNCOMMITTED
| REPEATABLE READ
| SERIALIZABLE
}
liulonghao 2006-04-13
  • 打赏
  • 举报
回复
呵呵
在这之前我只知道数据库会自动加锁
昨天有人问我的时候我才想到怎么手工加锁
Dark13 2006-04-13
  • 打赏
  • 举报
回复
更多的用途是在查询巨量数据的时候不影响别的操作

比如:
select sum(zje+yhje+srje) from sf_sfxx (nolock) where sfsj >='2003-01-01' and sfsj <'2006-01-01'

你不加nolock,在你统计的时间内,所有收费业务将无法保存
vovo2000 2006-04-13
  • 打赏
  • 举报
回复
一般数据库会自动加锁,一般来说够用了。但如果事务过大的话,多个用户同时更新数据库时会出现死锁问题。这个时候可以通过提高事物隔离级别来防止死锁
操作很简单,只要在事物前面设置一下隔离界别就可以了
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
有以下四种级别,可以根据要求选择。具体可以自己搜索相关资料
READ COMMITTED
READ UNCOMMITTED
REPEATABLE READ
SERIALIZABLE
huailairen 2006-04-13
  • 打赏
  • 举报
回复
一般是自动加缩的
你也可以用with(lock)来手工加锁

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧