RT,
公司网站老是出现问题,数据库锁表+访问速度慢。
大家推测了很多的原因,也解决了不少的问题,
但是我们的许多类都是用的静态类,
我不知道这样是不是引起问题的所在,
请各位发表一下自己的观点。我认为:
缺点:
1、静态类有资源瓶颈的问题;
2、线程安全问题
有点:
节约内存

解决方案 »

  1.   

    如果发现是数据访问影响速度的话,//只有一个connection
    可以试试看connection pool如果你的static class 提供的方法都是synchronized 的话。
    确实可能因为mutual exclusion 导致性能下降。可以从两个方面提高效率:
    1) 尽量减小 synchronized region
    2) 使用multi-threading至于static class 或者none static class 和你要提高效率的关系不大。
    因为none static function 也许要同步。
      

  2.   

    完全没有根据!
    我觉得静态类和一般的类几乎是一样的,但是它可以是private
    也就是说很容易隐藏起来。另外就是它的一点形式上的区别,Outclass.InnerClass()
      

  3.   

    谢谢各位的回答,
    我希望大家可以说清楚一点,
    我应该怎么做?
    顺便问一下
    1、Weblogic+Mysql
    一些 很简单的 Sql比如(select * from book order by comedate desc)就会锁表
    为什么呢?
    2、我们的访问量不是很大,一天2000个ip左右,用静态类的好处是什么?仅仅节约内存吗?
       非静态变量呢?
      

  4.   

    同意 inexplicable(inexplicable的观点,估计没有采用连接池技术,所以效率低,反映速度慢,
    要不就是驱动选的不对,
    一些 很简单的 Sql比如(select * from book order by comedate desc)就会锁表
    有可能是你数据出现了非法数据,看看有没有数据超出了你规定的字段长度;我觉得写成静态的区别不是很大
      

  5.   

    估计是只有一个数据库连接,如果使用weblogic的话,它本身提供了连接池的功能,设置一下就可以了。
      

  6.   

    呵呵
    我们当然用的是 Weblogic的连接池了。
    我们的Apache和Weblogic在以他服务器上,但是Mysql在另外一个数据库上。
    实在不明白锁表的原因。
    有谁有这方面的经验吗?