以SQL数据库视图为数据源,在VFP8.0中建立的远程视图,由于数据量较大(有80万条记录),打开速度非常慢,需要30多分钟才能全部打开,是否是由于设置不正确造成的?
在建立远程视图的“连接设计器”中,批处理、自动事务处理、包大小、超时间隔、等待时间应如何设置才能提高远程视图的打开速度?
敬向电脑专家请教,如何提高SQL数据源远程视图的打开速度?不胜感激!
------解决方案--------------------------------------------------------
先判断是视图的原因,还是数据量的原因。
用 SPT 方式【SQLEXEC(lnHandle, "SELECT * FROM 表名")】,读一次数据,看看多久,如果还是那么慢,应该就是数据量的问题,这样就需要考虑不读全部数据了。
------解决方案--------------------------------------------------------
80万条记录全要用?在SQL里直接打开也要不少时间啊。
远程视图一般是先打开空表,再输入条件查询,过滤掉不需要的记录。
------解决方案--------------------------------------------------------
用 CA 控件啊
这个可是VFP 非常 牛X 的控件,数据量这么大,任何命令把他们传过来都需要时间,只有用CA控件让操作员有个错觉。
------解决方案--------------------------------------------------------
80W记录一次性读取,不知道是反复这么做还是偶而这么做一次?
如果是偶而这么做时间长点也无所谓了,如果是反复这么做那建议在服务器端把结果压缩再传过来,然后解压使用吧!就别用啥远程视图了!直接用B/S结构吧!
------解决方案--------------------------------------------------------
排除掉网络和机器的因素
首先就要考虑你的算法问题了
不知道你的80万(其实很小)记录时如何操作的
------解决方案--------------------------------------------------------
从另一个角度看这问题:
对数据进行同样的增删改查,不但可以在VFP里完成,你还可以考虑只发一个命令,让后端的SQL SERVER处理,VFP只管提出数据处理要求和接收数据处理结果
这样原始数据大多不用通过网络大批传送了,且提高处理速度和程序的稳定性,琮保护了代码(代码不在VFP程序内)。
当然我这个建议可能是远水不解近渴,需要一点学习的过程。不过长远来说,是很值得的。
------解决方案--------------------------------------------------------
表数据索引可以大大提高查询及提取数据的速度,这是常识了!
但影响速度的并不仅仅是索引!
有一个笑话:电脑小白想了一个通用的防攻击办法,就是把自己的带宽设置得很小很小!
所以说程序使用的硬件环境也是影响速度的原因
------解决方案--------------------------------------------------------