本地ADO访问速度慢,远程ADO访问速度快,求高手解答

sangxiao 2010-11-10 09:09:40
现象:本地ADO访问速度慢(在本地用MYSQL的客户端执行同样的SQL语句速度很快的),但是远程ADO访问速度快,求高手解答。
...全文
172 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero 2010-11-10
  • 打赏
  • 举报
回复
在你的查询语句前后把时间打出来,看看本地访问的时候时间开销多大,远程ADO访问本机时候查询开销也都打出来。
sangxiao 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wwwwa 的回复:]

你在MYSQL中运行你的SQL语句,看看速度如何
[/Quote]
在MYSQL中速度很快的
WWWWA 2010-11-10
  • 打赏
  • 举报
回复
你在MYSQL中运行你的SQL语句,看看速度如何
sangxiao 2010-11-10
  • 打赏
  • 举报
回复
有没有可能是数据库什么参数配置有问题?
我现在用的全部是默认配置
zuoxingyu 2010-11-10
  • 打赏
  • 举报
回复
你另外起一个工程试试。我这里没有这样的情况。
sangxiao 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zuoxingyu 的回复:]

你单步调试一下看,是本地的数据库连接慢,还是查询慢?
[/Quote]

本地的数据库连接很快
sangxiao 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zuoxingyu 的回复:]

gDBConnString = "Driver={MySQL ODBC 5.1 Driver};Server=192.169.1.100;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;“
[/Quote]
这个我也试过了,一样的,本地很慢,其他机器很快。
zuoxingyu 2010-11-10
  • 打赏
  • 举报
回复
你单步调试一下看,是本地的数据库连接慢,还是查询慢?
zuoxingyu 2010-11-10
  • 打赏
  • 举报
回复
gDBConnString = "Driver={MySQL ODBC 5.1 Driver};Server=192.169.1.100;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;“
sangxiao 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 acmain_chm 的回复:]

不要使用DSN,直接用
gDBConnString = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;“
[/Quote]
你好,这个还是很慢,没有明显的变化.
sangxiao 2010-11-10
  • 打赏
  • 举报
回复
谢谢,我试试。

但是我的客户端程序不一定是在本机运行,还需要在局域网的其他机器执行,这个问题怎么解决呢?
ACMAIN_CHM 2010-11-10
  • 打赏
  • 举报
回复
不要使用DSN,直接用
gDBConnString = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;“
sangxiao 2010-11-10
  • 打赏
  • 举报
回复
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
sangxiao 2010-11-10
  • 打赏
  • 举报
回复
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
ACMAIN_CHM 2010-11-10
  • 打赏
  • 举报
回复
你的连接代码是什么?
ACMAIN_CHM 2010-11-10
  • 打赏
  • 举报
回复
综合你提供的信息。

1. 本地直接通过MYSQL命令行工具,速度很快。
2. 通过ADO,同样的代码访问远程的MYSQL数据库很快。
3. 通过ADO,访问本好的MYSQL数据库很慢。

可能的原因。
检查一下你本地的MYSQL版本和远程上的是否相同。
检查你的MYSQL的驱动,如果本地和远程版本不同的话。
检查你的网络。 你访问远程,同一个数据集的数据流(假设1000字节)只需要从远程服务器发回,你的网卡上只需要收1000字节。而你从本地访问则需要 本地MYSQL发送1000字节,然后本地收1000字节。 这种情况会出现在你的MYSQL和驱动的连接设置上。一般情况下相同机器的IP通过会直接BYPASS而不会通过实现的网络传输。

57,063

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧