以文本方式查看主题 - 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方法计算求和,居然比历遍行求和要慢!!!数据越大越明显! |