Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]关于关联表 的交叉统计 问题

1楼
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编辑过]
2楼
有点蓝 发表于:2024/3/25 11:38:00
重复测试多次,每次都是65 秒多?

换种方式做条件试试:http://www.foxtable.com/webhelp/topics/2720.htm

如果是SqlServer,跟踪一下后台执行了什么sql,把这个sql放到数据库里执行看看要多长时间
3楼
km007 发表于:2024/3/25 11:47:00
以下是引用有点蓝在2024/3/25 11:38:00的发言:
重复测试多次,每次都是65 秒多?

换种方式做条件试试:http://www.foxtable.com/webhelp/topics/2720.htm

如果是SqlServer,跟踪一下后台执行了什么sql,把这个sql放到数据库里执行看看要多长时间

就 单独 统计 11月 和 12月 每次至少六十多秒,有时甚至上百秒
但是奇怪的是 如果多个月范围(10月、11月、12月)耗时就正常;如果多个月范围(11月、12月)耗时就异常



服务器在对方那里,无法进去操作 SQL语句跟踪

[此贴子已经被作者于2024/3/25 12:01:43编辑过]
4楼
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编辑过]
5楼
有点蓝 发表于:2024/3/25 12:11:00

这种问题需要跟踪数据库的执行情况,要么到现场调试,要么让对方自行调试。做开发没有数据库的掌控权,很多问题都无法处理的

6楼
km007 发表于:2024/3/25 13:52:00
以下是引用有点蓝在2024/3/25 12:11:00的发言:

这种问题需要跟踪数据库的执行情况,要么到现场调试,要么让对方自行调试。做开发没有数据库的掌控权,很多问题都无法处理的

没有跟产品表做关联 的话 就正常了

7楼
有点蓝 发表于:2024/3/25 14:00:00
优化一下数据库,比如给关联列加上索引之类的:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=158943&replyID=&skin=1
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02539 s, 2 queries.