关于同时很多用户并发提交数据

时间:2022-08-29 11:48:56
请问大家一些问题,是一个项目过程中的:
项目用的是 pb10.5  ole方式连接sqlserver 
SQLCA.lock= 'RC' 事务隔离级别是rc 
需要满足能同时有300-500个用户同时提交数据(就是几乎同时)。
提交数据操作涉及到7个表(都是insert) 
均是insert ... commit;(也就是每个表插入都是一个事务)
  
1.如何方法能使得在此同时不会造成所有用户都卡住的情况?(以前有经验在50个用户的时候不会卡住,但是到了200-300就会全部卡住)
2.用什么样的测试方法可以模拟出300-500个用户同时提交数据的情形?
3.假如在此同时,有一个表会出现少量用户 select from where id=‘’(也就是检索一个表中的一行时), 会不会造成堵塞甚至是死锁? 
  当然 ,咋看起来不会死锁,但是实际情况是:当有7个表有50个左右用户 同时进行select及insert时  就会堵塞地很严重。(仔细检查过了 每个sql语句均有commit)

不知哪里出了问题,在此先谢谢大家的回答!

3 个解决方案

#1


等高手来把,MARK下!

2.用什么样的测试方法可以模拟出300-500个用户同时提交数据的情形?

这个可以其他语言中多线程来模拟,比如C#之类的

#2


回复#1
1 (1)在java板块查到做类似项目的做法,都是用xml将信息打包,然后传输到服务器。当然这是b/s模式或者是web services 下更容易的做法 对于pb直连数据库 貌似无能为力.(或者修改程序设计才能完成)
  (2)问了一下之前有做过这样类似项目的人,方法是在sql语句中加入延时,最终能达到在2分钟内能有800个用户成功提交。
2 c#或java模拟是一种好的办法,有条件再试试吧。其实最想得到有类似pb项目的直接做法~

#3


用pb10以上版本就可以模拟出来,用多线程来实现

建议把c/s应用改造成多层应用,完全并完美解决你的问题

#1


等高手来把,MARK下!

2.用什么样的测试方法可以模拟出300-500个用户同时提交数据的情形?

这个可以其他语言中多线程来模拟,比如C#之类的

#2


回复#1
1 (1)在java板块查到做类似项目的做法,都是用xml将信息打包,然后传输到服务器。当然这是b/s模式或者是web services 下更容易的做法 对于pb直连数据库 貌似无能为力.(或者修改程序设计才能完成)
  (2)问了一下之前有做过这样类似项目的人,方法是在sql语句中加入延时,最终能达到在2分钟内能有800个用户成功提交。
2 c#或java模拟是一种好的办法,有条件再试试吧。其实最想得到有类似pb项目的直接做法~

#3


用pb10以上版本就可以模拟出来,用多线程来实现

建议把c/s应用改造成多层应用,完全并完美解决你的问题