sql server表被锁的问题,请教大侠们了!!!紧急(200分)

  • 主题发起人 主题发起人 asaili
  • 开始时间 开始时间
A

asaili

Unregistered / Unconfirmed
GUEST, unregistred user!
事务在存储过程中控制的。
 
我用SP_LOCK看到表所住了。
 
这是种保护,估计是你事务处理 时,引发了自动上锁。可把锁的级别降低
 
我在一个存储过程中的事务处理里面,有用EXEC调用别的存储过程,
这个存储过程中也有事务处理。
当调用正当出国,本因该自动会滚的,但是好多表被锁住了。

请问那位大侠见过这中情况
 
更正:
当调用正当出错,本因该自动会滚的,但是好多表被锁住了。
 
这很正常啊,你的存储过程出错了,应该有是回滚的,但你的操作没执行,数据库在等下一你好指令,再看看你的程序吧
 
那么回滚后表就不应该锁定了的。但是还是锁住了。
 
UP。。。。。。。。。。

< 楼主声明: up者有分..>

:P
 
估计是存储过程写的不太规范,在修改和插入数据时建议处理好对表的操作顺序、事务处理的嵌套等问题
 
關於處理死鎖的幾個方法:
1>升級到Server SQL 2000
2>改寫查詢過程,建議在關聯查詢中盡量不使用三個表以上的關聊
3>在資料對表進行更新動作(Insert Update Delete)時盡可能的點用時間短與資源表少
4>在大型查詢或打開大表時盡量加入代碼Prepare對存儲過程與Query同樣適用
5>能使用Table控件的地方盡量不使用Query
6>定期對數據庫進行優化:包括建立維護計劃任務重組索引與分區
7>查看你的數據表建立了索引沒有,建立的是否合理。一般來說一張表建立的索引不要
超過三個,因為索引對查詢快但對數據更新操作會有影響.這一點你可在後台命令分析
器中調試檢查,並非索引越多越好
8>在後台查看你的服務器上進程經常發生鎖定的表,分析原因
9>對數據對行寫操作時,對事務的處理盡可能的點用時間短與資源表少,語句要高效性

我所用的就這麼多了,希望對你有所幫助。
 
后退
顶部