cctvdd 发表于 2008-04-18 13:25

请问下锁和多线程相关的问题,谢谢!

公司用的MS软件现在慢的很,想改进下
请问下,11.92以上的版本是支持行锁三,
关键是比如要运算长时期、运算大量的数据,能不能分成多个线程同时运算啊?
4个U,分每个同时运算, 再请问下要怎样实现呢?还有索引的类型有没有什么
想注意的?
          谢谢!!!

[ 本帖最后由 cctvdd 于 2008-4-18 13:27 编辑 ]

chuxu 发表于 2008-04-18 13:52

多进程的肯定没有问题,多线程应该也可以。
关键是并发设计的问题,一定要控制每个子进程或者线程严格按索引处理(select ),update的时候处理相应的行。
另外一个问题是控制一个事务中修改的记录数,最好很快提交修改,防止产生锁升级。

cctvdd 发表于 2008-04-21 10:41

谢谢!我再问下:
1、要实现多进程、多线程应该是存储过程控制,还是程序本身控制,还是SYB自身(SYB里配置了CPU的数)?
2、控制每个子进程或者线程严格按索引处理(select ),update的时候处理相应的行,是由存储过程控制吧?
3、控制一个事务中修改的记录数,这个怎样实现?

再次谢过!

chuxu 发表于 2008-04-21 10:46

1、我感觉应该是通过程序自身来控制。
2、可以考虑用ct_lib或esqlc来控制Sybase操作。
3、看你的程序逻辑了,如果是基于游标的,然后对每一行记录进行处理的,通过程序控制一下多少行提交应该不困难吧。
还是关键看应用逻辑是什么样子的。如果是能用sql语句处理的,别用游标,
页: [1]
查看完整版本: 请问下锁和多线程相关的问题,谢谢!