我来说下吧,BEA8.1 9.2 10都用过,我做的项目大多也都是机遇weblogic的项目。
每秒20用户登录,这个确实不是Weblogic的瓶颈,只要程序不垃圾轻松上100的。楼主可能需要优化的如下:
1、使用绑定变量,减少数据库硬解析的次数,因为这个解析过程是串行过程,所以为了等待资源Sql在运行前回等待解析,这个是很大的性能瓶颈。
2、查询索引,像登录这种的function就给Username加上索引吧
3、去除你sql里面的in,因为你哪怕写成“id=1 or id=2 or id=5”也要比你写成“id in ('1','2','5')”要好的多。因为ID应该是你的主键吧,主键都是带索引的,但是你使用了in就相当于在索引列增加了函数,导致索引失效(函数索引除外)。
4、最后一点属于设计上的问题,做Weblogic的集群,你既然选择了用BEA肯定要做集群的吧,否则用这么重量的做啥。做好集群,多个应用一起来分担压力。做好Cluster,就算一个挂了,另外一个可以先支撑一下
1、一直在对Session减肥,因为系统涉及的模块和权限很多,所以Session中带的这方面的数据较大;
2、用户登录处为多层多级模式,所以采用Ajax实现,感觉多用户同时登陆时对数据库的冲击很大;
3、exist代替in等常用的优化。这个也是很恼火的,因为in后面带的数组中的内容并不是某个可以select的集合,所以只好采用 id in ('1','2','5')/**1000个**/ or id in ('100','121','131')