多线程并发操作数据库时经常报出读写冲突的错误,这是怎么回事呢?
请问下各位,我程序开了5个线程,每个线程抓取指定网站的网页,它们的工作流程都一样,就是被指定的网站不同。在每个线程里都有对server 2000 的select、insert操作,只有这两种操作。我只开一个线程运行时不出错,同时开5个线程就不定时的报出读写冲突的错误,这是怎么回事呢?
这是我的毕设,老师下周要看演示,希望各位能帮帮忙,呵呵,多谢了!
------解决方案--------------------常见的并发问题,使用锁和事务来控制吧。
------解决方案--------------------最快的方法 ,将你的 select 全部改成 select .. from tb with(nolock)
------解决方案--------------------使用
select *
from 表名 with(nolock)
--不对表加锁进行访问
即使有个用户正在delete 表名,也可以查询出当前表的数据
------解决方案-------------------- select * from 表名 with(nolock)
------解决方案--------------------从根本上解决,还需要检查前台代码的实现方式,优化SQL