起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 334|回复: 18

使用动态查找属性过滤时速度超慢

[复制链接]
发表于 2009-10-13 09:02:55 | 显示全部楼层 |阅读模式
如题,使用了一个业务参数作为动态参数过滤查找属性,速度超慢 为啥??
回复

使用道具 举报

发表于 2009-10-13 09:06:00 | 显示全部楼层
估计是你的查找数据集数据量太大了。
楼主的过滤是怎么实现的,请具体说说。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-13 09:12:27 | 显示全部楼层
数据量很小,只有1K多条
业务参数赋值如下:
procedure TNJSQ1.DataSetNJSJJBeforeOpen(DataSet: TDataSet);
var
  lParam: TBizParam;
  lBizURL: TBizURL;
  strDWDM : String;
  lContextCurrent : TContextCurrent;
begin
lBizURL := TBizURL.Create;
  strDWDM := '30400000';
  lContextCurrent := TContextCurrent.Create(Context);
  try
  lBizURL.URL :=  'Biz:\YWKJ_GY\YWCSZ.ParamGroup\DWDM.Param';
    lParam := lContextCurrent.GetParam(lBizURL);
    lParam.Value := strDWDM;
  finally
    lBizURL.Free;
  end;
end;
在该数据集打开之前对业务参数进行赋值
回复 支持 反对

使用道具 举报

发表于 2009-10-13 09:16:50 | 显示全部楼层
1、这是参数赋值的代码,我是想了解楼主是怎么用参数过滤查找数据的
2、查找数据量1k,您是用什么方法得知的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-13 09:20:46 | 显示全部楼层
单位代码即为业务参数。
另外,数据表中记录总共1000多条,可过滤出的有100多,这是相对固定的人员信息表

gl.png

13.1 KB, 下载次数: 166

回复 支持 反对

使用道具 举报

发表于 2009-10-13 09:32:15 | 显示全部楼层
哦,这种过滤是客户端过滤,您的1000条数据在过滤前已经取到客户端了。
回复 支持 反对

使用道具 举报

发表于 2009-10-13 09:32:18 | 显示全部楼层
楼主,请按下面的方式测试看看
1、数据集的sql语句,放到数据库环境下执行,耗时多久。
2、数据集不使用动态过滤的方式,直接预览数据集,是否慢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-13 10:10:37 | 显示全部楼层
不使用动态过滤 要比使用过滤速度快,数据集只有200多条记录,数据量较少
回复 支持 反对

使用道具 举报

发表于 2009-10-13 10:26:50 | 显示全部楼层
3楼的代码,屏蔽掉,数据集上,还是使用动态过滤。给这个参数的表达式赋一个固定的值,看他是否慢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-13 11:43:04 | 显示全部楼层
直接用固定的值测试,这样就快很多了,可以接受的速度。

那现在该咋办??
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 14:40 , Processed in 0.048256 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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