起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 390|回复: 1

平台运行速度问题集[分享]**

[复制链接]
发表于 2008-8-22 11:15:23 | 显示全部楼层 |阅读模式
下面是一些我见到的影响功能或者平台运行速度的问题。
整理了一下,罗列出来供大家参考
回复

使用道具 举报

 楼主| 发表于 2008-8-22 11:15:31 | 显示全部楼层
1、在大数据量操作没有做
DataSet.EnableControls;
//dataset数据集操作
DataSet.DisableControls;

2、在数据集的事件上做了程序处理,但未处理妥当。
例如:
procedure TYPGLXX.DataSetYPXXSJJBeforePost(DataSet: TDataSet);
begin
  if (DataSetYPXXSJJ.State= TDataSetState.dsInsert) then//修正判断 ,只让插入状态运行下面的程序
  //if DataSet.FieldByName('GYSHH').OldValue <> DataSet.FieldByName('GYSHH').Value then
  begin
    with DataSetTPGLXX do
    begin
数据集事件的大部分事件是频繁触发的,如果处理不妥当,会非常影响速度。
例子程序的第三行就可以限定只在插入的状态运行代码。

3、计算数据未用最快的方法做,而用了效率低的平台计算字段做。
错误例子:程序填充自定义数据集,用计算字段获取结果。
修改方法:用程序计算,填充变量,写计算程序。

4、主从数据集,主表操作/滚动速度奇慢的问题。经常出现在从表比较多的情况下。
//lxy CloneCursor方式,避免滚动从数据集  //临时数据集lDataset,原主表数据集lBizDataSet
  lDataset:=TClientdataset.Create(nil);
  lDataset.CloneCursor(lBizDataSet,true,false);
  .....操作lDataset即可,和操作原数据集一样的效果,但不影响从数据集

5、打开功能慢,在打开的时候做了无用的打开数据集语句。

6、使用sqlfilter,在赋值sqlfiter的时候,没用一个变量字符串去构造sql语句。
  而在控件属性上做构造,造成数据集多次发送sql。

7、在平台多次导入新资源的时候
   业务模型\系统空间\系统数据库\本地业务数据缓存日志表
  存在大量数据,很影响平台性能。

8、旧版本(3000以前的某些版本)标准风格主窗体的文档关联刷新代码比较费时间,如果没有应用文档或者没有升级平台,可以注释掉。

9、数据集的自动打开未去掉,而在功能打开的时候又做了一次过滤,重复获取数据。
解决方法,a在信息上的信息创建事件里面处理数据集打开前的过滤状态
           b设置数据集的过滤属性
           c取消自动打开(文档上,功能策略上,信息上)

10、数据表带图片的字段也是自动载入的,效率很低。
    解决方法、a把图片字段做成从数据集。
              b、用代码自己获取

11、用Tdatatreeview影响速度的问题。
   一般我们会把这个控件当作数据导航,然后配合一个录入表单做界面。表单和tree都是链接一个数据集。
    这个就会造成这个功能启动和关闭很慢。
    解决方法:做一个新的数据集作为主数据集,但只包含tree必须的3个字段,然后用主从关系和原来的数据集关联。

12、数据集的计算字段上不要发SQL语句跟服务器交互(在oncalcfiled事件中执行sql)

13、用决策数据集统计数据。(效率非常低)
    换成用数据库sql去统计。

14、在一个信息里,建立了多个重复的数据集(针对同一个数据表)
   没有重复利用资源。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-20 19:52 , Processed in 0.041434 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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