当行数大于 1.000.000 时,Oracle APEX 呈现数据的速度变慢
Posted
技术标签:
【中文标题】当行数大于 1.000.000 时,Oracle APEX 呈现数据的速度变慢【英文标题】:Oracle APEX Presenting Data Slower When Row Count bigger than 1.000.000 【发布时间】:2017-02-17 09:27:15 【问题描述】:在 SQL Developer 中键入查询时,它会在不到一秒的时间内返回数据。在 Oracle APEX 中执行相同操作需要更多时间,超过 5 秒。我进入 DEBUG 部分看看出了什么问题,它会返回给我:
-IR binding: "APXWS_MAX_ROW_CNT" value="1000000"
我发现它返回超过 1.000.000 行,这就是速度较慢的原因。但不知道如何解决它,以得到与 SQL Developer 中大致相同的时间?
【问题讨论】:
【参考方案1】:“将Maximum Row Count 属性保留为null,这样经典报表就不会一直获取到这个数字,交互式报表也不会引入分析函数count(*) over ()。
不要使用带有 Z 的分页类型,因此经典报表不会获取所有行,并且交互式报表不会再引入 count(*) over ()。"
来源:http://rwijk.blogspot.ca/2016/11/performance-aspects-of-apex-reports.html (如果链接消失,我也将其保存在回程机器中:http://web.archive.org/web/20170706183715/http://rwijk.blogspot.ca/2016/11/performance-aspects-of-apex-reports.html
【讨论】:
【参考方案2】:对Maximum Row Count
和Maximum Rows per Page
设置一些限制可以帮助您减轻负载。
您在网页顶点方面的表现从未与 SQL Developer 相同。
【讨论】:
谢谢。我知道它不能像 SQL Developer 那样快,而是慢 6.7 倍?附言如何增加最大行数? 在你的 IR 的标签属性中设置最大行数。 性能取决于多种因素(浏览器、网络、IR 实现......)。 APEX 版本 5.0/5.1? Apex 版本是 5.0.1.00.06 下一步是什么? 将您的 SQL Developer SQL Array Fetch Size 设置为 1000000 并再次检查差异,因为这将更接近苹果对苹果。或将 APEX 最大计数设置为 100以上是关于当行数大于 1.000.000 时,Oracle APEX 呈现数据的速度变慢的主要内容,如果未能解决你的问题,请参考以下文章