起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1801|回复: 4

[处理中] ksql 全字段查询,性能问题怎么解决

[复制链接]

76

主题

241

帖子

909

积分

高级会员

Rank: 4

积分
909
QQ
发表于 2016-6-30 15:52:35 | 显示全部楼层 |阅读模式
本帖最后由 shudedengdai 于 2016-6-30 16:31 编辑

ksql 目前都是全字段查询,无法部分字段查询。对性能有很大的影响。而且ksql 很多数据库的函数都没法用
如何使用sql查询后,直接将结果载入到bizData 里面
1、不使用ksql,直接写sql,怎么将查询的结果存到bizData,很多复杂的sql,用原生的写法性能上比较快。
2、ksql如何使用数据库自带的函数?
3、我只想要table中的某个字段,用ksql怎么查询?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2016-6-30 16:23:43 | 显示全部楼层
1.KSQL中可以通过SQL.调用数据库本地函数
2.如果是自己定义的action,把数据返回给bizData,可以在js中调用action,然后把返回结果loadData给bizData
   action的返回类型要用Table
如下:action中对应的java的定义(table中还可以通过参数设置分页等http://bbs.wex5.com/forum.php?mod=viewthread&tid=38364)
  1.         public static Table loadData() {
  2.                
  3.                   String sql = "select fID, fName ,fCode,fRQ, fRQSJ from AP_RQ ";
  4.                   HashMap<String,String> sqlMap = new HashMap<String,String>();
  5.                   
  6.                   sqlMap.put(DatabaseProduct.ORACLE.name(),sql);
  7.                   
  8.                   Table table = SQL.select(sqlMap,null,"/appdemo/test/data");
  9.                   table.getProperties().put(Table.PROP_NAME_ROWID, "FID");
  10.                 return table;

  11.         }
复制代码
js中调用
  1. var data = this.comp("data1");
  2. biz.Request.sendBizRequest({
  3.                         "context" : me.getContext(),
  4.                         "action" : "loadDataAction",
  5.                         "callback" : function(callbackData) {
  6.                                 callbackData.ignoreError = false;
  7.                                 if (callbackData.state) {
  8.                                         var rows = callbackData.response.rows;
  9.                                         if (rows.length > 0) {
  10.                                                 for (var i = 0; i < rows.length; i++) {
  11.                                                         var fName = rows[i].fName.value;
  12.                                                 }
  13.                                         }
  14.                                         data.loadData(callbackData.response);
  15.                                 }
  16.                         }
  17.                 });
复制代码

3.执行慢的问题把\runtime\BusinessServer\WEB-INF\justep.xml中的<db-paging>false</db-paging> 改为
<db-paging>true</db-paging>    然后重启tomcat服务


远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

76

主题

241

帖子

909

积分

高级会员

Rank: 4

积分
909
QQ
 楼主| 发表于 2016-6-30 17:24:50 | 显示全部楼层
jishuang 发表于 2016-6-30 16:23
1.KSQL中可以通过SQL.调用数据库本地函数
2.如果是自己定义的action,把数据返回给bizData,可以在js中调用 ...

var data = this.comp("data1"); 这个data 是bizdata吗?
我需要的是直接装载到bizdata里面
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2016-6-30 17:26:33 | 显示全部楼层
data和bizdata一样
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2016-7-1 14:55:35 | 显示全部楼层
3、我只想要table中的某个字段,用ksql怎么查询?
这个可以直接在select列出要查的某个关系就可以,如下:select rq.fName  from AP_RQ rq;
API的中ksql的语法和函数有介绍可以了解一下
BeX5API.png

ksql.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-19 11:40 , Processed in 0.105611 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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