以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  后台数据处理效率问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48061)

--  作者:rjh4078
--  发布时间:2014/3/22 11:24:00
--  后台数据处理效率问题
14版本增加的几个后台数据查询更新的方法确实比较方便 但是现在发现一个问题 一个是SQLFIND经常找不到存在的数据 我用的是远程服务器  另外一个 在处理50条左右的数据时就明显感到卡顿现象 这50条从A表SQLselect过来 通过一系列判断SQLREPLACE到B表
换用SQL语句则没有这么明显 想问下老大这几个方法的原理 和SQL相比效率差多少

--  作者:Bin
--  发布时间:2014/3/22 11:28:00
--  
找不到,是还没保存到数据库里吧

卡顿应该是网络不稳定,效率还是不错的. 当然复杂的情况下有经验的程序员总是能写出更高校的SQL语句

--  作者:rjh4078
--  发布时间:2014/3/22 11:33:00
--  
肯定是保存了 我用SQLFIND和select语句同时来判断 一个得不到数据一个可以;卡顿也是2个按钮分别用不同的代码来测试的,前者程序卡死3-5秒左右才恢复响应,后者几乎没感觉 所以才有此疑问
--  作者:Bin
--  发布时间:2014/3/22 11:35:00
--  
条件不对吧,没有可能性的哦.

效率问题就有待测试了.

--  作者:lsy
--  发布时间:2014/3/22 11:35:00
--  

先用SQLCommand生成临时DataTable(dt),当然,对于行、列也要有所筛选,否则数据量大的情况下,也会耽误时间。

然后在这个dt的基础上,执行Find、Select、Compute之类的。

这样只需从后台下载一次数据。

如果直接反复运用SQLFind、SQLSelect、SQLCompute之类的,就是重复从后台下载数据,肯定慢。


--  作者:jspta
--  发布时间:2014/3/22 12:41:00
--  
以下是引用lsy在2014-3-22 11:35:00的发言:

先用SQLCommand生成临时DataTable(dt),当然,对于行、列也要有所筛选,否则数据量大的情况下,也会耽误时间。

然后在这个dt的基础上,执行Find、Select、Compute之类的。

这样只需从后台下载一次数据。

如果直接反复运用SQLFind、SQLSelect、SQLCompute之类的,就是重复从后台下载数据,肯定慢。


在没有这些方法之前,一直就是这么操作的,速度也非常快。再加上考虑到通用性,我觉得狐表的方法不一定会快到哪里去

举个简单例子,computer方法计算求和,居然比历遍行求和要慢!!!数据越大越明显!