存储过程sp1的流程如下:
select table1
若有符合条件的数据,update table1 set flag=1,且update table2 set flag= 3.
若没有符合条件的数据, update table2 set flag=2
(table1, table2都有主键,存储过程中有事务控制)前段调用的程序流程:select table2 where flag=1 ,一条一条取出,进行少量运算,调用存储过程sp1。问题是:在存储过程中,若不加行级锁,会出现数据不一致情况。若加锁,又很慢,怎么办?
select table1
若有符合条件的数据,update table1 set flag=1,且update table2 set flag= 3.
若没有符合条件的数据, update table2 set flag=2
(table1, table2都有主键,存储过程中有事务控制)前段调用的程序流程:select table2 where flag=1 ,一条一条取出,进行少量运算,调用存储过程sp1。问题是:在存储过程中,若不加行级锁,会出现数据不一致情况。若加锁,又很慢,怎么办?
解决方案 »
- 请问函数声明错在哪儿了?
- MDI Application共享Delphi和BCB DLL插件的问题
- 请教:如何把listview中的多个选项一起复制到剪贴板?
- Fastreport 固定打印格式
- 我安装delphi7后,有indy,socketserver等组件,为什么有大侠说delphi7没有这些socket组件?
- 取得控件的名称!?
- 关于在Delphi中支持多过语言的问题
- 求助,界面的高级调整?
- 一个ActiveX下载的问题。请大家帮下忙!帮忙顶也有分
- 如果主窗體下打開很多子窗體,它們中隻有一個是當前活動窗體,如下問題:
- 如何获得网络断开的消息?
- 请问如何让一个对话框显示时,在主程序Form的中间显示
不一致的错误是指:table1中flag=1和table2中flag=3的行数不等。(应该是相等的)
单cpu没问题,4cpu就不一致了。
加行级锁后,一致性解决了,但3个客户端同时跑,都很慢,根本没发挥出4cpu数据库的性能!