以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  时间巨无霸,谁可优化.  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=8181)

--  作者:lihe60
--  发布时间:2010/9/14 14:16:00
--  时间巨无霸,谁可优化.

表A窗口按钮运行时间超长,谁可优化时间长度.

要求:使用外部数据源,不加载数据,直接从后台统计.

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:my documents.rar

[此贴子已经被作者于2010-9-14 14:16:38编辑过]

--  作者:mr725
--  发布时间:2010/9/14 14:51:00
--  
字符型的你用sum???
--  作者:lihe60
--  发布时间:2010/9/14 15:04:00
--  
这个不影响速度.
--  作者:狐狸爸爸
--  发布时间:2010/9/14 15:10:00
--  

这样的任务,我也没有好的方法。

自己调整设计思路。


--  作者:lihe60
--  发布时间:2010/9/14 15:13:00
--  

先加载再统计,时间只有一秒.


--  作者:czy
--  发布时间:2010/9/14 15:25:00
--  

这样的结果不是一样吗?

时间0.3秒

 

Dim s As Date = Date.Now()
Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("第二列")
g.Totals.AddDef("第一列", AggregateEnum.Count)
g.FromServer = True
g.Build()
MainTable = Tables("统计表1")
MessageBox.Show((Date.Now -s).TotalSeconds)


--  作者:lihe60
--  发布时间:2010/9/14 15:38:00
--  

我需要在指定表中统计,而不生成新表"统计表1".


--  作者:mr725
--  发布时间:2010/9/14 15:40:00
--  

这个也不要1秒钟:

Dim a,b As Double
Dim cmd As New SQLCommand
Dim dt As datatable
cmd.Connection Name = "1"
cmd.CommandText = "SELECT * From {表A}"
dt = cmd.ExecuteReader()

a=now.second
For Each dr As Row In Tables("表C")
    dr("第一列") = dt.Compute("Sum(第一列)", "第二列 = \'" & dr("第二列") & "\'")
Next
b=now.second
messagebox.show(b & " " & a & "  " & b-a)

[此贴子已经被作者于2010-9-14 15:40:46编辑过]

--  作者:lihe60
--  发布时间:2010/9/14 15:48:00
--  
我看看,先顶一下.
--  作者:lihe60
--  发布时间:2010/9/14 15:57:00
--  

谢谢了.