以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  改用SQLCompute变的很慢  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=65548)

--  作者:wjl-se
--  发布时间:2015/3/18 11:33:00
--  改用SQLCompute变的很慢
数据全部加载,原来用compute速度挺快的,改用SQLCompute变的非常慢,什么原因呢?
--  作者:有点甜
--  发布时间:2015/3/18 11:34:00
--  
 不要多次重复使用SQLCompute,如果多次,建议先用临时表把所有表弄出来,再用compute。
--  作者:Bin
--  发布时间:2015/3/18 11:35:00
--  
数据全部加载,就不要用SQLCompute了.  这个会到数据库统计查询, 如果服务器和网络速度不快,反复多次查询统计肯定会慢
--  作者:wjl-se
--  发布时间:2015/3/18 11:37:00
--  
好的,谢谢!
--  作者:wjl-se
--  发布时间:2015/3/18 13:59:00
--  

局域网,外部ACCESS数据源,后台{产成品库}5万条数据,单次执行SQLCompute:

{订单表}计算入库:

rk = DataTables("产成品库").SQLCompute("Sum(入库)", "[订单号] = \'" & e.DataRow("订单号") & "\' And [入库方向] = \'入库\' And [入库日期] <= #" & mydate & "#")

 

慢的无法忍受啊,请问老师如何优化?

[此贴子已经被作者于2015/3/18 14:00:30编辑过]

--  作者:有点甜
--  发布时间:2015/3/18 14:03:00
--  

  执行一次计算,还是多次计算?指执行一次的话,没办法优化。

[此贴子已经被作者于2015/3/18 14:03:29编辑过]

--  作者:Bin
--  发布时间:2015/3/18 14:04:00
--  
你这样计算5万次不科学. 你一条条计算啊.  干嘛动不动就遍历5行行? 你想做什么?
--  作者:wjl-se
--  发布时间:2015/3/18 14:04:00
--  

每笔订单都要计算一次

订单表是父表,产成品表是子表

[此贴子已经被作者于2015/3/18 14:04:39编辑过]

--  作者:有点甜
--  发布时间:2015/3/18 14:05:00
--  
 那你 SQLCompute 执行多少次啊,计算一次也很慢么?
--  作者:Bin
--  发布时间:2015/3/18 14:06:00
--  
你新建一个订单,或者修改一个订单,你就计算这一行不久好了.