多线程多进程数据库访问应注意问题

来源:互联网 发布:java 自定义审批流程 编辑:程序博客网 时间:2024/05/21 11:17

多线程多进程数据库访问应注意问题:

事务在执行时不知道其他事务的存在,无论是多Connection或是单

Connection。

1、Select 语句不需要显示的用 BeginTrans 声明事务。如果显示的进

行了声明则会给数据库加入共享锁,接下来如果是Update语句,在多线

程,多进程中数据库很可能会产生死锁现象。

2、显示声明的事务时,事务内的处理应尽量少,只将必须的操作放入事

务中,尽量不要嵌套事务或在事务中进行Select查询。加锁时间越短数

据库的并发性越高。

3、单独的Update语句是一个隐示的事务,不需要显示的声明事务。(与

数据库的设置有关,SQL默认为隐示事务自动提交)

4、事务中如果需要先进行Select操作再进行Update操作时,尽量给

Select加入参数,在Select操作时将数据库的行或页或表锁定。

5、事务中尽量保持锁表语句顺序进行保持一致。如果发生锁升级时互锁

,后面的事务会成为牺牲品。