起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 352|回复: 17

【结】关于透视数据集的查询速度问题**

[复制链接]
发表于 2009-1-15 10:51:33 | 显示全部楼层 |阅读模式
如下代码:
search := SysUtils.DateToStr(DateTimePicker1.Date);
  DocViewDLZBRB_SCDLZBXRBBGWD.DocClassID := '';
  TPivotDataSet(DataSetBroker1.dataSet).Open;
  //TSqlDataSet(DataSetBroker1.dataSet).SQLFiltered := false;
  TPivotDataSet(DataSetBroker1.dataSet).SQLFilter:=' year=''' + search.Split(['-'])[0]
    + ''' and month=''' + search.Split(['-'])[1]+''' and dates=''' + search.Split(['-'])[2] + '''';
  TPivotDataSet(DataSetBroker1.dataSet).SQLFiltered := true;
  DocViewDLZBRB_SCDLZBXRBBGWD.DocClassID := 'SCDLZBXRBBGWD.SHEETDOC';

上述代码的意思是,从DataSetBroker1中查处符合条件的数据,并通过一个DocView将其展示出来。
其中的DataSetBroker1和DocViewDLZBRB_SCDLZBXRBBGWD连接的是同一个透视数据集。

现在问题是:第一次点击查询的时候速度还可以,但是两次或三次以后就发现查询的速度越来越慢了。
跟踪代码后发现,查询的时候速度很快,但是:
DocViewDLZBRB_SCDLZBXRBBGWD.DocClassID := 'SCDLZBXRBBGWD.SHEETDOC';
这段代码运行的话会比较慢一些。。。。
回复

使用道具 举报

 楼主| 发表于 2009-1-15 11:06:30 | 显示全部楼层
晕。不是吧。各位兄台帮忙看看吧。多谢啊。很重要的功能哎。。。
回复 支持 反对

使用道具 举报

发表于 2009-1-15 11:07:07 | 显示全部楼层
为什么去这样设置呢?
DocViewDLZBRB_SCDLZBXRBBGWD.DocClassID := 'SCDLZBXRBBGWD.SHEETDOC';

刷新docview用OpenView试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-15 11:16:24 | 显示全部楼层
回复楼上。已经改好了,但是还是速度慢,每次的用时是前一次用时+3s的样子。。。。是不是透视数据集的问题???
回复 支持 反对

使用道具 举报

发表于 2009-1-15 11:18:02 | 显示全部楼层
你1楼不是说透视数据集不慢吗?
检查一下透视数据集的属性设置,模式:快速交叉
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-15 11:42:55 | 显示全部楼层
我修改了代码
  DocViewDLZBRB_SCDLZBXRBBGWD.OpenView(TDocMode.dmEdit);  

速度依然越来越慢。
回复 支持 反对

使用道具 举报

发表于 2009-1-15 13:38:39 | 显示全部楼层
楼主,请检查一下透视数据集的属性设置,模式:快速交叉
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-15 15:13:45 | 显示全部楼层
已经设好了,但是还是慢哦。咋整???帮忙ING。。。。呵呵。。。。
回复 支持 反对

使用道具 举报

发表于 2009-1-15 15:55:28 | 显示全部楼层
楼主,数据量大不大呀?维数多不多?
把你的环境做一个例子传上来看看吧。
我也不清楚是怎么慢了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-16 08:13:59 | 显示全部楼层
回楼上,数据不多,维数是不少啊。等会儿给你上传吧。需要整理一下哎。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-28 00:05 , Processed in 0.039545 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表