多线程访问数据库问题:一个实例加锁 VS 多个实例
本人准备使用OTL操作sql数据库。它支持多线程操作。
现在有2种方案:
1. 使用一个登录实例,多线程加锁对此实例读写数据库。
2. 每个线程开一个登录实例进行读写数据库,不需要加锁。
请大家讨论一下。
------解决方案--------------------你的多线程要做什么操作? 要知道sql server本身访问资源是加锁的,所以即使你是多线程在SQL Server中也不一定是可以并行的。 而且SQL Server Log写是顺序的。
------解决方案--------------------只有上万条,没必要多线程吧,如果要用,肯定是第2种方案
第一种方案不就又变成单线程了么
------解决方案--------------------数据库实现了并发机制,不需要通过多线程,每个线程插入或更新几千条语句来实现。
如果你用一个线程,反而效率会更高,如果是多个线程的话,线程直接在更新数据时,会锁住要更新的资源,
可能导致并发问题,还不如一个线程插入或更新所有的数据来的效率高。
------解决方案--------------------"
1. 使用一个登录实例,多线程加锁对此实例读写数据库。
2. 每个线程开一个登录实例进行读写数据库,不需要加锁。
"
2个方法似乎都是多线程嘛,具体代码是什么?能不能发出来看看