软件使用PB9开发,现在出现很头痛的问题,发理SQL有共享锁一直不释放,导致其它客户端无法更新,观察了好几天,所有更新都没问题,不会阻塞,就是由SELECT发出的共享锁引起的,而且一直都不释放
SQL
------解决方案--------------------
共享锁不释放,肯定是事务方式的问题,PB没用过,查下连接的事务方式或者锁方式、或者命令的事务方式或者锁方式等相关的设置,修改下应该就可以。
或者用存储过程实现查询,强制采用WITH (NOLOCK)进行SELECT
------解决方案--------------------
是不是事务的隔离级别弄错了。隔离级别在可重复读之上就会出现共享锁不释放的问题。一直持有共享锁到事务的结束。这段时间内是不允许更新的。