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

多线程数据库访问技巧
本文探讨了在多线程或多进程中使用数据库时需要注意的问题,包括如何正确地使用Select和Update语句避免死锁,如何简化事务处理以及如何提高数据库的并发性能。

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

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

Connection。

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

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

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

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

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

据库的并发性越高。

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

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

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

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

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

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值