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

QQ登录

只需一步,快速开始

楼主: wgs7909

[结贴] oracle数据库,大数据量的时候,查询非常慢

[复制链接]

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2017-5-22 15:55:23 | 显示全部楼层
本帖最后由 wgs7909 于 2017-5-22 16:26 编辑
jishuang 发表于 2017-5-22 15:32
数据库中也是用的like查的吗?

jdbc标准的方式用setParameter的方式设置值查询看看多长时间http://blog.cs ...

终于查明白了,因为我在页面上加了一个时间过滤组件,时间条件会加在子查询里,X5的机制是把组合到的条件,加在子查询里。这时如果子查询里记录条数太多的话,这样的分页机制,严重的影响了查询效率啊!!!为什么不是把rownum<21的条件像mysql的limit那样,直接写在while条件里呢????

但是怎么解决呢???
QQ截图20170522155420.jpg
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35910
发表于 2017-5-22 16:40:36 | 显示全部楼层
本来就是where条件啊


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



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

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2017-5-22 17:00:36 | 显示全部楼层
jishuang 发表于 2017-5-22 16:40
本来就是where条件啊

关键问题是X5在正常查询语句外面又加了一层,把本来的SQL做为一个子查询了啊!子查询里会查询所有数据的,查出来后再做一个分页操作啊!
为什么不是像mysql那样,直接把limit加在where条件里呢?

请仔细想一下我说的这个问题,你可以验证一下。
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35910
发表于 2017-5-22 17:33:53 | 显示全部楼层
用dateFilter平台默认拼的就是where条件也不是子查询
跟用什么数据库无关
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2017-5-22 18:19:38 | 显示全部楼层
本帖最后由 wgs7909 于 2017-5-22 18:20 编辑
jishuang 发表于 2017-5-22 17:33
用dateFilter平台默认拼的就是where条件也不是子查询
跟用什么数据库无关

求你再仔细想想我说的话。
这与日期过滤组件没有关系。
这是X5对分页的处理方式的问题,
X5是把分页条件加在了外层查询
而这个外层的查询是平台自动给加上的,这就影响效率的主要原因

我已经把问题说的再明白不过了,希望我们的交流能并到一个频道上。
QQ截图20170522181834.jpg
QQ截图20170522181440.jpg
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35910
发表于 2017-5-23 10:25:59 | 显示全部楼层
这个处理是oracle数据库分页查询的统一控制,多种情况都可以
里面的子查询慢还是要看数据库中索引的优化
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2017-5-23 14:59:03 | 显示全部楼层
jishuang 发表于 2017-5-23 10:25
这个处理是oracle数据库分页查询的统一控制,多种情况都可以
里面的子查询慢还是要看数据库中索引的优化 ...

这与数据库的优化没有关系啊,这是分页的机制问题啊!目的是为了查出20条数据,为的就是提高查询的效率,但是这种机制会查询出所有的数据,然后再从所有数据里取20条,你觉得这是合理的吗?
为什么不像MYSQL那样,把分页条件直接写在where条件里呢??????
把分页条件直接写在where条件里才是正确的做法啊!
按现在的做法,绝对是错误的。
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35910
发表于 2017-5-23 16:24:35 | 显示全部楼层
16楼已经说了这个处理是oracle数据库分页查询的统一机制,多种情况都可以,目前只能这样
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2017-5-23 17:25:00 | 显示全部楼层
jishuang 发表于 2017-5-23 16:24
16楼已经说了这个处理是oracle数据库分页查询的统一机制,多种情况都可以,目前只能这样 ...

是啊,我说的就是X5对oracle数据库进行的这种分页处理方式的问题。你说的对,大多数据情况下,是可以的。但我现在碰到的问题就是少数情况,子查询里加了order by 条件,只要加了order by ,现有的这种分页机制就会导致数据库全查询。

我觉得应该像mysql那样,直接把分页条件加在子查询里,而不是再套一层外查询。

这个真的很重要。
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35910
发表于 2017-5-23 17:38:07 | 显示全部楼层
这个已经跟相关人员确认了只能这样处理
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 06:27 , Processed in 0.072310 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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