我设计了一个统计表,公式如下:我的数据表20多万条记录、统计速度很慢、需要10几分钟才能够统计出来,有没有什么办法可以提高统计速度?
Dim g1 As New GroupTableBuilder("OLT端口使用统计表", DataTables("OLT设备用户端口数据表"))
g1.Groups.AddDef("机房名称")
g1.Groups.AddDef("设备名称")
g1.Groups.AddDef("机框编号")
g1.Groups.AddDef("槽位编号")
g1.Groups.AddDef("端口编号")
g1.Totals.AddDef("设备ID", AggregateEnum.Count, "密码数量")
g1.Filter = " 机房名称 Is not null"
e.form.Controls("Table1").Table.DataSource = g1.BuildDataSource
Dim dt As DataTable = e.form.Controls("Table1").Table.DataTable
dt.DataCols.Add("用户数量", Gettype(Integer))
'dt.DataCols.Add("槽位端口", Gettype(String))
dt.DataCols.Add("端口利用率", Gettype(Double))
For Each r1 As DataRow In dt.datarows
r1("用户数量") = DataTables("OLT设备用户端口数据表").Compute("count(_Identify)" , " 机房名称 = '" & r1("机房名称") & "' and 设备名称 = '" & r1("设备名称") & "' and 机框编号 = '" & r1("机框编号") & "' and 槽位编号 = '" & r1("槽位编号") & "' and 端口编号 = '" & r1("端口编号") & "' and 宽带帐号 is not null")
'r1("槽位端口") = r1("机框编号") +"/"+ r1("槽位编号") +"/"+ r1("端口编号")
r1("端口利用率") = r1("用户数量") / r1("密码数量")
Next
dt.DataCols("端口利用率").SetFormat("00.00%")
e.form.Controls("Table1").Table.SetColVisibleWidth("机房名称|160|设备名称|80|槽位端口|80|机框编号|80|槽位编号|80|端口编号|80|密码数量|80|用户数量|80|端口利用率|80")