天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 2155|回复: 9

视图显示的查询效率

[复制链接]
ykse01 发表于 2011-12-6 10:40:18 | 显示全部楼层 |阅读模式
本帖最后由 shary 于 2011-12-11 21:22 编辑

查询表单中有一个下拉2个列边框,视图中有两列是绑定显示值,为什么每次视图数据显示一行都要重新查询一次下拉列表框中的内容,显示10行就查询10次。下拉框里有2万多条数据,导致每次查询都很慢,请问有什么解决方案?
 楼主| ykse01 发表于 2011-12-6 10:46:20 | 显示全部楼层
dos窗口下显示的追踪语句我在数据库内运行速度不慢,不知为何在网页中显示很慢
purple 发表于 2011-12-6 10:49:22 | 显示全部楼层
您好,后台直接读取出来的是真实值,每次需要将您的真实值转换成显示值,所以会导致有多少条数据,就需要查询多少次,如果视图列信息的值,是通过脚本计算出来的,也是这样子,需要保证速度,只能是直接读取数据库数据。视图存在分页,每一次只加载需要显示的记录数,显示速度应该也不慢吧?
 楼主| ykse01 发表于 2011-12-6 10:52:36 | 显示全部楼层
慢,因为本身查询显示值的内容有几万条,现在我看tomcat的输出,每条记录用4秒,很纠结了。究竟什么原因呢
purple 发表于 2011-12-6 11:04:17 | 显示全部楼层
选项值有几万条数据,肯定就慢啦。因为每一次都需要把真实值,转换成显示值,您的下拉框使用缓存的方式实现,就可以解决。调用DocumentProcessBean类中的queryByDQLWithCache(String dql, ParamsTable params, String domainid)方法即可。
 楼主| ykse01 发表于 2011-12-6 11:10:40 | 显示全部楼层
不明白,脚本调用上能不能给详细例子?还有能否使用sql不是dql?ParamsTable params是什么参数?
suyisene 发表于 2011-12-6 11:21:04 | 显示全部楼层
你好 可以调用SQL语句方法:
public DataPackage<Document> queryBySQL(String sql, ParamsTable params, String domainid)

例子参考:
var dprocess = createProcess("cn.myapps.core.user.ejb.DepartmentProcessBean");
var depts = dprocess.queryByDomain(getDomainid());
var depts="";
for (var it = depts.iterator(); it.hasNext(); ) {
        var dept = it.next();
        depts=dept.getName();
        break;
}
depts;
suyisene 发表于 2011-12-6 11:22:35 | 显示全部楼层
ParamsTable类是对http协议对象数进行封装, 并可以对参数进行基本的增,删和格式化参数等功能 并通过实现 java.io.Serializable
* 接口以启用其序列化功能
 楼主| ykse01 发表于 2011-12-6 11:28:36 | 显示全部楼层
本帖最后由 ykse01 于 2011-12-6 11:33 编辑

我看不明白。DocumentProcessBean类的完全调用应该是怎么样的?queryBySQLWithCache(String sql, ParamsTable params, String domainid)传入的参数最后两个是必须的还是可以省略?求更详细说明
purple 发表于 2011-12-6 18:24:54 | 显示全部楼层
您好,相关脚本,请参考帖子:http://www.teemlink.com/bbs/viewthread.php?tid=159348&extra=

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 18:13

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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