求救:不知什么原因,同一个程序,同一台电脑,win10系统读取数据超慢

luoqiang73 2017-12-02 03:45:27
我用VFP做了一个程序,读取和写入SQL server 2005时,用xp可以1000条数据记录是秒读,秒写,但是用win10系统时,速度超慢,起码要5-10分钟。就是用win10里的虚拟机xp系统速度都比win10系统下快多了。大神们能帮我想下是什么原因吗?
sql server 2005安装在win server 2003服务器上,客户端用win10 64位专业版 和win10里的虚拟机XP及其他XP系统。
...全文
1267 13 点赞 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
luoqiang73 2017-12-22
引用 12 楼 luoqiang73 的回复:
[quote=引用 10 楼 dkfdtf 的回复:] 共享内存协议只对 sql sever 安装在本机的客户端连接起作用,因为通过共享内存直接访问数据总是最快的,所以一般都设为打开,且其顺序总是被放在首位不可更改。对其他通过 tcp/ip 协议来访问 sql sever 的客户端来说,共享内存协议自然是不起作用的(内存总线可没法跨越这个物理上的限制),所以在这些机器上,打开和关闭它都可以,这些客户端只要关闭掉不需要的协议以减少连接探测的时间 或 直接设置优先探测的连接协议即可。 先确定 win10 的网络自动调节级别通过运行前面的 netsh 命令成功关闭了,以前在 win8 时用这个命令确实是立竿见影的,运行 netsh interface tcp show global 看看结果是 normal 还是 disbaled
和我安装了vm虚拟机软件有没有关系?[/quote] dkfdtf 老师再帮我看下?
  • 打赏
  • 举报
回复
luoqiang73 2017-12-19
引用 10 楼 dkfdtf 的回复:
共享内存协议只对 sql sever 安装在本机的客户端连接起作用,因为通过共享内存直接访问数据总是最快的,所以一般都设为打开,且其顺序总是被放在首位不可更改。对其他通过 tcp/ip 协议来访问 sql sever 的客户端来说,共享内存协议自然是不起作用的(内存总线可没法跨越这个物理上的限制),所以在这些机器上,打开和关闭它都可以,这些客户端只要关闭掉不需要的协议以减少连接探测的时间 或 直接设置优先探测的连接协议即可。 先确定 win10 的网络自动调节级别通过运行前面的 netsh 命令成功关闭了,以前在 win8 时用这个命令确实是立竿见影的,运行 netsh interface tcp show global 看看结果是 normal 还是 disbaled
和我安装了vm虚拟机软件有没有关系?
  • 打赏
  • 举报
回复
luoqiang73 2017-12-16
引用 10 楼 dkfdtf 的回复:
共享内存协议只对 sql sever 安装在本机的客户端连接起作用,因为通过共享内存直接访问数据总是最快的,所以一般都设为打开,且其顺序总是被放在首位不可更改。对其他通过 tcp/ip 协议来访问 sql sever 的客户端来说,共享内存协议自然是不起作用的(内存总线可没法跨越这个物理上的限制),所以在这些机器上,打开和关闭它都可以,这些客户端只要关闭掉不需要的协议以减少连接探测的时间 或 直接设置优先探测的连接协议即可。
先确定 win10 的网络自动调节级别通过运行前面的 netsh 命令成功关闭了,以前在 win8 时用这个命令确实是立竿见影的,运行
netsh interface tcp show global
看看结果是 normal 还是 disbaled

使用netsh interface tcp show global结果如下:
TCP全局参数
-----------------------
接收端缩放状态:disabled
烟囱卸载状态:disabled
接收窗口自动调节级别:disabled
附加拥塞控制提供程序:default
ECN功能:disabled
RFC1323时间戳:disabled
初始RTO:3000
接收段合并状态:enabled
非Sack Rtt复原:disabled
最大SYN重新传输资料:2
快速打开:enabled
快速打开回退:enabled
节奏配置文件:off
  • 打赏
  • 举报
回复
luoqiang73 2017-12-11
那我把SHARE MEMORY 协议关闭有没有关系?
  • 打赏
  • 举报
回复
luoqiang73 2017-12-11
引用 7 楼 dkfdtf 的回复:
不是禁用网卡的协议,是禁用 sql server 使用协议,或者你将 tcp/ip 协议调到第一顺序 老版本(sql server 2000)是这个
dkfdtf 老师,我试了,我的SQL SERVER 是2008 R2版的,那个TCP/IP调不到1,SHared memory 协议打开了就是第1位,要么就是关闭。速度还是老样子。
  • 打赏
  • 举报
回复
都市夜猫 2017-12-11
共享内存协议只对 sql sever 安装在本机的客户端连接起作用,因为通过共享内存直接访问数据总是最快的,所以一般都设为打开,且其顺序总是被放在首位不可更改。对其他通过 tcp/ip 协议来访问 sql sever 的客户端来说,共享内存协议自然是不起作用的(内存总线可没法跨越这个物理上的限制),所以在这些机器上,打开和关闭它都可以,这些客户端只要关闭掉不需要的协议以减少连接探测的时间 或 直接设置优先探测的连接协议即可。 先确定 win10 的网络自动调节级别通过运行前面的 netsh 命令成功关闭了,以前在 win8 时用这个命令确实是立竿见影的,运行 netsh interface tcp show global 看看结果是 normal 还是 disbaled
  • 打赏
  • 举报
回复
luoqiang73 2017-12-05
引用 5 楼 luoqiang73 的回复:
[quote=引用 4 楼 dkfdtf 的回复:]
[quote=引用 2 楼 luoqiang73 的回复:]
没有用,试过了

客户端的其他协议禁用了没有?因为这条命令仅对用 tcp/ip 协议的连接起作用[/quote]

其他协议都要禁用吗?那我试试,谢谢[/quote]

我今天再次试了,还是差异很大,打开同一张单据,win10 需要1分钟,虚拟机xp只需要1秒不到。
我已经把协议都禁用了(这样应该算是禁用了吗?)只保留三项,只是稍微好一点。
还有感觉一点,就是win10里每张单据打开的时间都差不多,不管单据的数据量多少。所以我想应该是不程序的问题,应该是系统的设置关系。
  • 打赏
  • 举报
回复
luoqiang73 2017-12-05
引用 4 楼 dkfdtf 的回复:
[quote=引用 2 楼 luoqiang73 的回复:] 没有用,试过了
客户端的其他协议禁用了没有?因为这条命令仅对用 tcp/ip 协议的连接起作用[/quote] 其他协议都要禁用吗?那我试试,谢谢
  • 打赏
  • 举报
回复
都市夜猫 2017-12-05
不是禁用网卡的协议,是禁用 sql server 使用协议,或者你将 tcp/ip 协议调到第一顺序



老版本(sql server 2000)是这个
  • 打赏
  • 举报
回复
都市夜猫 2017-12-04
引用 2 楼 luoqiang73 的回复:
没有用,试过了

客户端的其他协议禁用了没有?因为这条命令仅对用 tcp/ip 协议的连接起作用
  • 打赏
  • 举报
回复
luoqiang73 2017-12-04
还是要谢谢您,我试过了,百度里搜索出来的,win7和win8里可以用的都试了,在win10里没用
  • 打赏
  • 举报
回复
luoqiang73 2017-12-04
没有用,试过了
  • 打赏
  • 举报
回复
都市夜猫 2017-12-02
以前用 win8 的时候遇到过,以管理员身份运行下列命令试试:
netsh interface tcp set global autotuninglevel=disabled
  • 打赏
  • 举报
回复
相关推荐
发帖
VFP
加入

2500

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
申请成为版主
帖子事件
创建了帖子
2017-12-02 03:45
社区公告
暂无公告