建议再增加一台Web服务器!或者使用Cache来减少对数据库的访问!

解决方案 »

  1.   

    建议不要用pconnect这种连接在页面运行完毕后仍然不会停止 手册中都建议要谨慎使用 对经常使用的内容做Cache是免不了的 另外mssql的CPU占用率本来就很如果是频繁insert,delete建议使用mysql 如果仍然有问题 就要考虑换一种替换DB更改数据策略了。
      

  2.   

    win2003跑PHP的效率比LINUX或FreeBSD要慢很多
     $sql=new DB_mssql("select * from table"); 
    $record=$sql->Record(); 
    for($i=1;$i <=200;$i++){ 
    以下是数据处理 
      $sdr=new DB_mssql("select * from table2"); 
      $record2=$sdr->Record(); 
    for($m=1;$m <=300;$m++) 

    以下是数据处理 
    $record2=$sdr->Record(); } 一次要处理表中所有记录?最好只取回需要的记录 MSSQL好像用 TOP 不要这样在循环中实例化很多的类 即使很快的销毁 分配内存 回收内存也是要时间的
    连接数据也不需要这样 LZ的代码要连接很多次数据库 估计时间都浪费在连接上了$db_link=mssql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("无法链接mssql");
    mssql_select_db(DB_DATABASE);$query1 = mssql_query(select * from table);for ($i=0;$i<200;$i++) //也不要这样写 上边说了 既然只需要200条记录那就只取回200条while($result = mssql_fetch_array($query1)){
     $query2 = mssql_query(select * from table2);
     //逻辑处理
    }个人认为这样封装的类没什么实际效果反而会浪费资源
      

  3.   

    感谢楼上的帮助,小弟之前连接数据库也没有用类来封装,
    用的都是
    $db_link=mssql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("无法链接mssql"); 
    mssql_select_db(DB_DATABASE); 最后在页面的部分使用  mssql_close(); 一个页面中有很多的数据库操作,存在循环查询里面套循环如果换这样的操作,是不是对数据库连接只有一次,还是怎么样,小弟对类的操作也不是很懂,这么大的连接,也只有在实际操作才能测试,平时做系统没有办法做这个测试的。如果采用封装的话,如何来关闭数据库。
      

  4.   

    如果我没有记错,pconnect是针对来自一个连接的吧?如果你并发数那么高,对不同的连接要求,即使用pconnect也会生出多个连接的吧?就比如我和你同时使用你的系统,怎么也得两个连接啊。你说的这种情况,在别的数据库中,是可以通过连接池来改善性能的。我没有搞过mssql,所以只能抛砖。
      

  5.   

    换PDO连接,自己的服务器干吗不用存储过程