找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 158|回复: 2

[二次开发] AttributeLinkedSet对象过多导致的性能下降

[复制链接]

13

主题

8

回帖

328

积分

管理员

积分
328
发表于 2024-1-25 17:37:20 | 显示全部楼层 |阅读模式

表现

  1. AttributeLinkedSet 属性,有4万多个对象,打开详情页特别慢(14s)
  2. 执行 DBUpdate 特别慢(13s)
2024-01-25 17:33:48 | Info    | 1     | TransactionRecord UpdateRemote:DBUpdate use: 13.63 | Houseinfo |||
2024-01-25 17:34:02 | Info    | 1     | TransactionRecord UpdateRemote:DBUpdate use: 13.63 | Houseinfo |||
2024-01-25 17:34:17 | Info    | 1     | TransactionRecord UpdateRemote:DBUpdate use: 13.72 | Houseinfo |||
2024-01-25 17:34:35 | Info    | 1     | TransactionRecord UpdateRemote:DBUpdate use: 13.83 | Houseinfo |||
2024-01-25 17:34:49 | Info    | 1     | TransactionRecord UpdateRemote:DBUpdate use: 13.14 | Houseinfo |||
2024-01-25 17:35:04 | Info    | 1     | TransactionRecord UpdateRemote:DBUpdate use: 13.76 | Houseinfo |||

解决方案

  1. presentationdetail 不显示 AttributeLinkedSet 属性,可以解决详情页打开慢的问题

回复

使用道具 举报

13

主题

8

回帖

328

积分

管理员

积分
328
 楼主| 发表于 2024-1-25 17:58:39 | 显示全部楼层

此问题是在计算 xx_list 个数时遇到的,参考的是 Store Count of 1:n relation

加一些日志:

2024-01-25 17:54:04 | Info    | 1     | TransactionRecord oSet->Get use: 13.4 | Houseinfo |||
2024-01-25 17:54:04 | Info    | 1     | TransactionRecord oSet->Get use: 0 | Houseinfo |||
2024-01-25 17:54:04 | Info    | 1     | TransactionRecord UpdateRemote:DBUpdate use: 13.48 | Houseinfo |||

可以看到

  1. 读取 xxx_list 属性时很慢(和详情页加载慢一样的问题,数据太多)。
  2. ComputeValues 被调用了两次
回复

使用道具 举报

13

主题

8

回帖

328

积分

管理员

积分
328
 楼主| 发表于 2024-1-25 23:06:55 | 显示全部楼层
解决方案是避免读取这个属性。。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|iTop中文社区 ( 苏ICP备2023006759号-2|苏公网安备 32050902101535号 )

GMT+8, 2025-2-5 15:41 , Processed in 0.048896 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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