现象:本地ADO访问速度慢(在本地用MYSQL的客户端执行同样的SQL语句速度很快的),但是远程ADO访问速度快,求高手解答。

解决方案 »

  1.   

    Public Function ConnDB() As Boolean
        gDBConnString = "DSN=fasclient;Password=passwd;User ID=fas"
        ConnDB = True
        If gDatabase.State = adStateClosed Then   
            Err.Clear
            On Error Resume Next
            gDatabase.ConnectionString = gDBConnString
            gDatabase.CursorLocation = adUseClient
            gDatabase.Mode = adModeUnknown
            gDatabase.Open
            If Err Then 
                ConnDB = False
            End If
            Err.Clear
        End If
    End Function
      

  2.   

       Dim rst As New ADODB.Recordset
        Dim iSQL As String    
        On Error GoTo ErrDB
        iSQL = "Select Computer.*,SysCode.SysName From Computer,SysCode where Computer.PCType=SysCode.SysCode And SysCode.SysCodeType='PCType' Order by Computer.PCCode"
        rst.Open iSQL, gDatabase
      

  3.   

    不要使用DSN,直接用
    gDBConnString = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;“
      

  4.   

    gDBConnString = "Driver={MySQL ODBC 5.1 Driver};Server=192.169.1.100;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;“
      

  5.   

    你在MYSQL中运行你的SQL语句,看看速度如何
      

  6.   

    在你的查询语句前后把时间打出来,看看本地访问的时候时间开销多大,远程ADO访问本机时候查询开销也都打出来。
      

  7.   

    综合你提供的信息。1. 本地直接通过MYSQL命令行工具,速度很快。
    2. 通过ADO,同样的代码访问远程的MYSQL数据库很快。
    3. 通过ADO,访问本好的MYSQL数据库很慢。可能的原因。
    检查一下你本地的MYSQL版本和远程上的是否相同。
    检查你的MYSQL的驱动,如果本地和远程版本不同的话。
    检查你的网络。 你访问远程,同一个数据集的数据流(假设1000字节)只需要从远程服务器发回,你的网卡上只需要收1000字节。而你从本地访问则需要 本地MYSQL发送1000字节,然后本地收1000字节。 这种情况会出现在你的MYSQL和驱动的连接设置上。一般情况下相同机器的IP通过会直接BYPASS而不会通过实现的网络传输。