译 ADF View Object Performance Tuning Analysis

翻译 2012年01月19日 10:28:15

在下文我们将研究表格性能在各种显示方案下的调优:

我们将从顶部的优化过程中,浏览如下:查看ADFM和ADFBC

ADFM

在界面我们使用af:table组件

打开data control面板,拖拽一个VO到你的页面上做成一个table.

单击你最新的那个table然后选择属性,进入到behaviorshowdetail


FetchSize定义了 从服务器一次传递给客户端行的数量,FethcSize默认是与绑定的VO的迭代器的rangeSize是同步的。

为了获得最佳性能,Oracle建议保持同步表FETCHSIZE和迭代RangeSize,同时 在满足视图行数的前提下,rangesize应该尽可能的小。

更多表组件的性能方面的考虑,可以在这里找到:

table的 rangesize是个传统的属性,我们用户一般不会考虑其值。

打开jspx页面所对应的pageDefine文件,选择需要优化的table所对应的Iterator查看属性,RangSize建议等于25


Iterator'sRangeSize属性定义了从BC层传到ADFM记录的行数

当iterator创建时 RangeSize默认被赋值25

为了减少服务器客户端的交互传送TABLE的数据,Oracle建议把rangeSize的值设成你的UITABLE充满整个屏幕时的行数。

ADF BC

在VO中也要做出必要的配置

Open Model project -> select your view object -> General -> Tuning


或者在此VO被引用到某个AM中的单独调优路径


Open Model project -> Application Module -> Data Model -> View Object Instances -> Data Model -> select your view object -> press Edit… button -> Tuning


对于您的需求,您可以使用上述任何一种方法,但要记住,在第一种情况下,将配置所有实例的应用,而在第二种情况下只对选定的实例将被改变

in batches of 

首先我们需要设置 in batches of 这个域,它指的是一次同时从数据库里读取的记录数;

当视图对象创建领域分批被自动设置为1,这可能会影响性能,除非只有1行被取出,这几乎是从来没有的情况下。

而为了最优的性能,Oracle文档中告诉我们 in batches of 设置的数应该为n+1,其中n为UI展现给用户的行数,因为多出的1我们可以认为就不必再有下一次请求就可以让下个选项启用或禁用。这就是我们看到的图中显示的是26而给用户展现的却是25(iterator设置的和Fetchsize也是25).现在table中就会和服务器交互一次取出25行数据而如果VO in batches of 设为默认1的话则交互则要26次。

 Steve Muench建议in batches of 应该设为n+3,这个理论在https://forums.oracle.com/forums/thread.jspa?threadID=1073058争论不休。

Query Optimizer Hint field or QueryHint是用来提高查询速度用的。

在我们的例子中,查询优化器提示栏位设定为FIRST_ROWS_26在这种情况下,,一个基于成本的方法,用于优化与目标的最佳响应时间查询返回的26行=>更好的速度=>提高了整体性能。.尊重您的特殊需要,可以使用下面的查询提示:ALL_ROWS,FIRST_ROWS_n和FIRST_ROWS。

所有的 query optimization hints信息都会在下文说明

Access Mode

在默认情况下 access mode设置成Scrollable,只要您不通过大数据量进行迭代它都能满足您的要求。如果需要大数据集,您应改为 range paging或range paging incremental。
当我们的table来自一个VO包含100W条记录时,试图滚动现实另一次交互出现的数据时,如下窗口问题会展现爱你在浏览器中:

在控制台会抛出outofmemory错误。
所以access mode属性对我们来说是十分重要的,怎样选择合适的mode您最好阅读 chapter 39.1.5 Efficiently Scrolling Through Large Result Sets Using Range
 Paging(地址为:http://docs.oracle.com/cd/E14571_01/web.1111/b31974/bcadvvo.htm#insertedID0)
更多的ADF VO性能调优操作如下:
BUG1:

确定您的Range paging cache factor设置为2
拖拽一个VO到PAGE上,滚动table上的行 则会提示 table’ s vertical scroll bar will DISAPPEAR。这个BUG在谷歌浏览器和火狐测试过
BUG2: 
access mode选择scrollable
range size 设为25
在page上使用键盘上的 up 和down 不会现实最后的page。就像hit a wall
您可以使用鼠标滚轴而不使用键盘,或者table的滑块。这只是在谷歌或火狐好用。
BUG3:
如果 access mode设为 RangePaging  
range size = 25或 
acess mode设为Range Paging incremental
range size = 1 
Range Paging Cache factor=1
查询table会提示currentrow is lost .同时在控制台报错误 no row found for rowkey.


Oracle Performance Tuning Overview 翻译(Oracle性能优化概述 自己的中英文比对翻译)

Oracle® Database Performance Tuning Guide 10g Release 2 (10.2) B14211-03 Home Book List ...
  • xiaohai798
  • xiaohai798
  • 2014年06月23日 23:26
  • 2716

使用ADF-BC 实现查询功能之七:使用View Criteria

开发环境:JDevloper 11.1.2.1.0+ Oracle Database 10g Express Edition 10.2.0.1。 在前面的例子中,我把参数直接写在了VO的Wher...
  • Beckben
  • Beckben
  • 2014年08月20日 19:20
  • 684

python 性能分析与个人实践

过早的优化是万恶之源~
  • gningh
  • gningh
  • 2016年11月23日 15:16
  • 862

文档performance tuning 第299页有段话先记录下来;

The Query Optimizer 11-23 How the Query Optimizer Chooses Execution Plans for Joins The query opti...
  • launch_225
  • launch_225
  • 2014年05月29日 16:01
  • 606

优化app小建议_lint测试发出的warning

1.Avoid object allocations during draw/layout operations (preallocate and reuse instead) 用Android自带的...
  • hncjlxf
  • hncjlxf
  • 2014年02月17日 11:17
  • 11702

如何查看和设置ADF日志

1. 查看 ADF BC 日志 (1)把Debug日志信息写到控制台 双击打开Model项目,选择“Run/Debug/Profile”项,在“Run Configurations”中选中Defa...
  • Beckben
  • Beckben
  • 2014年08月19日 19:30
  • 705

Camera tuning 基础知识点

相关知识点总结: 一、模组及工艺相关知识      ①模组的组成           1)模组的基本组成。(AF&FF)           2)镜头----镜头的发展历史,镜头相关参数解析,...
  • suiyiwuhui
  • suiyiwuhui
  • 2017年06月05日 16:45
  • 1151

使用ADF Faces 之二:数据可视化组件 Pivot Table

开发环境:JDeveloper 11.1.2.1.0 + Oracle XE Database 10gR2。 本实验需要使用FOD Schema,请参考《发布与运行 Oracle Fusio...
  • Beckben
  • Beckben
  • 2014年08月19日 18:49
  • 579

使用ADF Faces 之三:创建和使用ADF自定义合成组件

开发环境:JDevloper 11.1.2.1.0+ Oracle Database 10g Express Edition 10.2.0.1。 完成《Creating and Using ...
  • Beckben
  • Beckben
  • 2014年08月19日 18:53
  • 629

基于Oracle ADF的应用程序开发

ADF简介   ADF(Application Development Framework)是Oracle公司为简化J2EE程序开发的复杂性专门开发的一种解决方案,ADF通过减少实现设计模式和应...
  • caixingyun
  • caixingyun
  • 2014年11月15日 13:10
  • 1213
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:译 ADF View Object Performance Tuning Analysis
举报原因:
原因补充:

(最多只允许输入30个字)