Php写SQL2005数据库报表效率好低啊 查询速度好慢,有没有办法可以使查询变得快一些?

解决方案 »

  1.   


    PHP原生支持最好的数据库是MYSQL,建议使用MYSQL,如果暂时无法转换数据库,对于查询操作,应该使用缓存来完成,不应该每次都从数据库中读取,除非你的报表实时要求特别高。PS: 还有一种可能,你使用的PHP的SQLSERVER数据库驱动版本较低,可以考虑使用新版本,有可能会提升性能
      

  2.   

    还就是看你的SQL语句的,尽量写高效率的查询语句
      

  3.   

    这是我的SQL查询报表页面,你们看哈语句和程序有什么地方可以优化的吗?<?php  
    include_once 'sqlconn.php';$js="select count(*) from jcxx where convert(char,jcrq,23)>='2010-12-15' and dwdm='0200049' and wcbz='9'";
    $count = sqlsrv_query($conn,$js);
    if ( $ROW = sqlsrv_fetch_array( $count ) )
    {
    $COUNT = $ROW[0];
    echo '一共完成'."$COUNT".'人';
    }
    if ($COUNT=='0')
    {
    echo "<br>";
    die(没有检索到信息!);
    }$xh=1;$xh<=$COUNT;
    echo "<table border=\"1\">";
    $Qjcxm=sqlsrv_query($conn,"select jcxm from jcxx,jcxx_jcxm where dwdm='0200049' and convert(char,jcxx.jcrq,23)='2010-12-15'and jcxx.studyid=jcxx_jcxm.studyid group by jcxm");
    echo "<tr>";
    echo "<td>序号</td>";
    echo "<td>检查号</td>";
    while ($ROW=sqlsrv_fetch_array($Qjcxm))
    {
    $jcxm=$ROW[0];
    echo "<td>$jcxm</td>";
    }
    echo "</tr>";
    $query="select studyid,convert(char,csny,23) as csny,convert(char,jcrq,23) as jcrq,xm,hf,xb,cktc,gzdm from jcxx where convert(char,jcrq,23)='2010-12-15' and dwdm='0200049' and wcbz='9' "; //查找JCXX$Result = sqlsrv_query($conn,$query);
    while($ROW = sqlsrv_fetch_array($Result))
    {
    $studyid=$ROW['studyid'];
    $cktc=$ROW['cktc'];
    $gzdm=$ROW['gzdm'];
    $xm=$ROW['xm'];
    $hf=$ROW['hf'];
    $xb=$ROW['xb']; //查找JCXX
    $jcrq=$ROW['jcrq'];
    $csny=$ROW['csny'];
    $nl=date("Y-m-d",time())-$csny;$Qjcxm1=sqlsrv_query($conn,"select jcxm from jcxx,jcxx_jcxm where dwdm='0200049' and convert(char,jcxx.jcrq,23)='2010-12-15'and jcxx.studyid=jcxx_jcxm.studyid group by jcxm");
    echo "<tr>";
    echo "<td>";
    echo $xh++;
    echo "</td>";
    echo "<td>$studyid</td>";
    while ($ROW=sqlsrv_fetch_array($Qjcxm1))
    {
    $jcxm=$ROW[0];$Qjgtxt=sqlsrv_query($conn,"select jgtxt from jcxx_jcxm where studyid='".$studyid."' and jcxm='".$jcxm."'");
    if ($ROW=sqlsrv_fetch_array($Qjgtxt))
    {
    $jgtxt=$ROW[0];
    }
    echo "<td>$jgtxt</td>";
    }
    }
    echo "</tr>";
    echo "</table>";
    ?>
      

  4.   

    mysql查询速度不错 , 在建立索引