查看标准:数据库与内存与两者

问题描述 投票:2回答:1

我想知道是否有人知道在ADF中使用查询执行模式的最佳做法是什么?据我所知:

数据库:每次查询查询时,都会从数据库表中过滤搜索结果。在内存中:结果从VO缓存中过滤掉。它将使用行集中已有的行。它将停止对DB的不必要的命中。两者:结果从现有行集中过滤,也从数据库中过滤后的结果中过滤。当您想要从未提交的记录中过滤时,这非常有用。

我问的原因是因为我在使用Both选项时遇到了一些问题。我的绑定变量未正确更新。

先感谢您!

oracle oracle-adf jdeveloper
1个回答
2
投票

根据我的经验,您应该始终使用数据库,除非您需要过滤新创建的但尚未提交的行。

以下是数据库与内存与两者之间的不同用例

数据库模式允许查询数据库表并确保为用户提供的数据是最新的。如果您刚刚创建了一个新行并且未将其提交到数据库,则在数据库模式下对视图对象应用视图条件将不会显示此新行。这是默认模式。

内存模式允许查询View Object缓存数据。因此,执行查询将显示新创建的和未提交的行,但不会在数据库中显示任何新创建的行。

两种模式都允许显示新创建的和未提交的行,并在数据库中显示任何新创建的行。但由于某种原因,它通常很慢。

你可以在这里阅读更多(https://docs.oracle.com/middleware/12213/adf/develop/working-programmatically-view-objects.htm#ADFFD1223

默认情况下,视图对象对数据库执行查询以检索其结果行集中的行。但是,您还可以使用视图对象执行内存中搜索和排序,以避免不必要的数据库访问。这种类型的操作非常适合排序和过滤视图对象行集的新的尚未发布的行;否则,未发布的行将添加到行集的顶部。

© www.soinside.com 2019 - 2024. All rights reserved.