50,931
社区成员




接受了一个系统,代码是c#.net,数据库是sqlserver
基本流程是手持终端扫描工单,录入信息,再提交。
实际问题就是会有几十个pda同时工作对数据库进行读写。
数据量不多,一次可能就是1百到2百条,但是,在多人操作的时候非常卡,一次执行要几分钟才能有反馈。
目前做过的优化:因为服务器内存符合百分之九十八以上,所以设置了sqlserver的内存最大最小限制,服务器cpu和内存使用率分别稳定在50%,85%
数据库连接开关也没发现异常,sql文进行了优化。
最终结果:速度有所提升,但是在高峰期仍然很慢。
想请教各位经验大神,.net或者java在处理这种情况的时候一般提前做什么设定,比如代码的书写方式,或者框架选择,或者数据库特殊设置。
你如果每条都去读写一次数据库就死锁了,而且并发很高,应该是批量提交批量判断
接收到的数据放到队列里再处理
好的,谢谢
SqlServer 在读写量较大时一般倾向于占所有内存来达到提速的效果, 所以一般情况下, SqlServer 不应该和应用服务器放在同一台硬件上。
按你说的数据量, 还远远没有达到让SqlServer性能大幅度下降的程度。 (我在十八年前在 Sqlserver 2000 上实践过每秒600万条记录的持续写入, 你现在的硬件和版本远远不可能在这个量上出问题), 所以应该是你的Sql语句和表结构设计的问题导致的可能性比较大。