none
关于SqlServer2005的行级锁问题。 RRS feed

  • 问题

  • 关于Sql Server中的锁定,现在正开始学习。

    业务情景:大量的图片,客服审核。在客服审核时,每次查询出20张图片。
    我的想法是,当一个客服查询出20张图片以后,其他的客服就不能够查询到这20张图片了。
    这样就可以避免两个客服同时修改一张图片的情况。

    我看书上 SELECT只有共享锁,也就是查询了别人也可以查询。

    问题:在查询的时候需要怎么样才能锁定我所查询出来的数据,修改过后怎么释放我所锁定的数据。
    请各位路过的大侠,指点小弟,需要掌握哪些知识,说个大概的就行。

    先行谢过。
    2009年7月15日 10:17

答案

  • 锁是用于并发控制的,
    审核图片应该是需要一定时间的,而锁是内存资源,长时间占用而不释放会影响性能。
    我觉得你需求不应该通过sqlserver的锁机制来完成,应该在业务逻辑里完成。


    不清楚你的表结构是怎样的,举个例子, 添加一个字段A,A表示正在被某个客服审核,每个客服只能查看自己或者没主儿的图片


    SQL SERVER Engine Test

    2009年7月15日 10:52
    版主
  • Can use lock hint, but may affect performance like said.
    • 已标记为答案 Trice Xie 2009年7月16日 1:22
    2009年7月15日 18:17

全部回复

  • 锁是用于并发控制的,
    审核图片应该是需要一定时间的,而锁是内存资源,长时间占用而不释放会影响性能。
    我觉得你需求不应该通过sqlserver的锁机制来完成,应该在业务逻辑里完成。


    不清楚你的表结构是怎样的,举个例子, 添加一个字段A,A表示正在被某个客服审核,每个客服只能查看自己或者没主儿的图片


    SQL SERVER Engine Test

    2009年7月15日 10:52
    版主
  • Can use lock hint, but may affect performance like said.
    • 已标记为答案 Trice Xie 2009年7月16日 1:22
    2009年7月15日 18:17
  • 谢谢大家的热心回复,

    看来我还是只能在业务逻辑上想办法了。

    如果哪位大侠还有其他的话要说的。欢迎回复。

    2009年7月16日 1:23