Foxtable(狐表)用户栏目专家坐堂 → [讨论] Sql 库存统计的2种方法,你更看中哪种?


  共有16481人关注过本帖树形打印复制链接

主题:[讨论] Sql 库存统计的2种方法,你更看中哪种?

帅哥哟,离线,有人找我吗?
lin_hailun
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/20 9:07:00 [显示全部帖子]

以下是引用qq121454970在2012-12-20 9:01:00的发言:
此话怎讲……15秒,有木有感觉时间长了点呢?


结合方法一和方法二,如果查询的时间比较长,试着去优化一下你的查询语句。

你可以记录一个库存的缓存,用这个数值增减,空闲的时候再去获取实际的库存值便可。

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/21 13:36:00 [显示全部帖子]

以下是引用qq121454970在2012-12-21 12:25:00的发言:
晕,我今天写了100万订单明细,用我的代码分开统计3列(估计跟统计300万行订单的一列数据速度差不多),用我的代码统计花了近30秒……刚刚用统计分组统计(采用后台统计,),统计完成只花了2.7秒……,真心伤不起,这相差也太大了……


能否导出具体数据给大家测试?这样才能帮到你怎么去统计和优化。

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/27 16:01:00 [显示全部帖子]

以下是引用qq121454970在2012-12-27 15:59:00的发言:
麻烦给兄弟测试下速度哈图片点击可在新窗口打开查看


其实你可以使用 百度网盘 或者 金山快盘的。

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/27 16:16:00 [显示全部帖子]

如果代码改成这样的话,查询一行大概一两秒。

If e.DataCol.Name = "商品编号" Then
    Dim ck As String = "'"& e.DataRow("仓库") & "'"
    Dim sp As String = "'" & e.DataRow("商品编号") & "'"
    If ck <> "" AndAlso sp <> "" Then
        Dim cmd,cmd1,cmd2 As new SQLCommand
        cmd.C
        cmd.CommandText = "Select sum(进货数) as 进货, sum(出货数) as 出货, sum(调整数) as 调整 from {明细} where 仓库 = " & ck & " And 商品编号 = " & sp
        Dim dt As DataTable = cmd.ExecuteReader
        e.DataRow("进货数") = dt.DataRows(0)("进货")
        e.DataRow("出货数") = dt.DataRows(0)("出货")
        e.DataRow("调整数") = dt.DataRows(0)("调整")
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/27 16:52:00 [显示全部帖子]

 查询表的话,这样写,也就 三秒。

Select 仓库, 商品编号, sum(进货数), sum(出货数), sum(调整数) from {明细} group by 仓库, 商品编号

 因为语句比较简单,没有更优化的写法了。除非冲数据库入手了。
[此贴子已经被作者于2012-12-27 16:53:52编辑过]

 回到顶部