以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]关于关联表 的交叉统计 问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=191072) |
|
-- 作者:km007 -- 发布时间:2024/3/25 11:28:00 -- [求助]关于关联表 的交叉统计 问题 表名:销售明细表 字段:日期、产品编号、客户编号、数量、金额…… 表名:产品库 字段:产品编号、产品名称、单价…… --------------------------------------------------------------------- 关联统计代码如下: Dim st As Date = Date.Now Dim b As New S Q LCrossTableBuilder("统计表1","销售明细表") b.Connection Name = "数据源" b.AddTable("销售明细表","产品编号","产品库","产品编号") b.HGroups.AddDef("{销售明细表}.[客户编号]") b.HGroups.AddDef("{产品库}.[单价]") b.VGroups.AddDef("日期", DateGroupEnum.Year, "{0}年份") b.VGroups.AddDef("日期", "{0}月份") b.Totals.AddDef("{产品库}.[数量]") b.Totals.AddExp("销售金额","{产品库}.[数量] * {产品库}.[单价]") \' b.Filter = "year(日期) = \'2024\' and month(日期) = 10" b.Build M aint able = Tables("统计表1") MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") --------------------------------------------------------------------- 问题如下: 当 b.Filter = "year(日期) = \'2023\' and month(日期) = \'10\'" 时,耗时 1 秒多(正常) 当 b.Filter = "year(日期) = \'2023\' and month(日期) = \'11\'" 时,耗时 65 秒多(异常) 当 b.Filter = "year(日期) = \'2023\' and month(日期) = 12" 时,耗时 68 秒多(异常) 当 b.Filter = "year(日期) = \'2023\' and month(日期) in (\'10\',\'11\',\'12\')" 时,耗时 1 秒多(正常) 请问这种情况会是什么原因导致的呢?目前还没找出原因所在
[此贴子已经被作者于2024/3/25 11:31:32编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2024/3/25 11:38:00 -- 重复测试多次,每次都是65 秒多? 如果是SqlServer,跟踪一下后台执行了什么sql,把这个sql放到数据库里执行看看要多长时间
|
|
-- 作者:km007 -- 发布时间:2024/3/25 11:47:00 -- 以下是引用有点蓝在2024/3/25 11:38:00的发言: 重复测试多次,每次都是65 秒多? 如果是SqlServer,跟踪一下后台执行了什么sql,把这个sql放到数据库里执行看看要多长时间
就 单独 统计 11月 和 12月 每次至少六十多秒,有时甚至上百秒 服务器在对方那里,无法进去操作 SQL语句跟踪 [此贴子已经被作者于2024/3/25 12:01:43编辑过]
|
|
-- 作者:km007 -- 发布时间:2024/3/25 11:53:00 -- 查询表:销售数据表 左表:销售明细表 关联字段:产品编号 ; 右表:产品库 关联字段:产品编号 列:{销售明细表}.*,{产品库}.* --------------------------------------------------------------------- 条件: 当 year(日期) = \'2023\' and month(日期) = \'10\' 时,耗时 1 秒多(正常) 当 year(日期) = \'2023\' and month(日期) = \'11\' 时,耗时 超 30 秒(异常) 当 year(日期) = \'2023\' and month(日期) = \'12\' 时,耗时 超 30 秒(异常) 当 year(日期) = \'2023\' and month(日期) in (\'10\',\'11\',\'12\') 时,耗时 1 秒多(正常) 当 year(日期) = \'2023\' and month(日期) in (\'11\',\'12\') 时,耗时 超 30 秒(异常) [此贴子已经被作者于2024/3/25 11:53:58编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2024/3/25 12:11:00 --
|
|
-- 作者:km007 -- 发布时间:2024/3/25 13:52:00 -- 以下是引用有点蓝在2024/3/25 12:11:00的发言:
没有跟产品表做关联 的话 就正常了 |
|
-- 作者:有点蓝 -- 发布时间:2024/3/25 14:00:00 -- 优化一下数据库,比如给关联列加上索引之类的:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=158943&replyID=&skin=1 |