Oracle 参数 INMEMORY_FORCE 官方解释,作用,如何配置最优化建议
本站中文解释
:
INMEMORY_FORCE参数是Oracle 12c中的一个参数,其默认值为“NONE”,用于控制INMEMORY功能的行为。它允许开发人员对指定的表进行更多的控制,并指示Oracle数据库将要如何处理适用于INMEMORY存储属性的表。
INMEMORY_FORCE参数可以设置为三种值:NONE,FORCE和AUTO。
NONE: 仅允许查询使用INMEMORY表。
FORCE: 强制使用INMEMORY表,不允许使用外部表作为表副本。
AUTO:当查询执行时,Oracle数据库自动决定是否使用INMEMORY表。
此外,要有效地使用该参数,应在内存高速缓存池和必要的表及其分区的INMEMORY子列的支持下进行正确设置。此外,还必须检查INMEMORY_SIZE参数。
官方英文解释
INMEMORY_FORCE
allows you to specify whether objects, such as tables, materialized views, and partitions, that are specified as INMEMORY
are populated into the In-Memory Column Store (IM column store) or not.
Property | Description |
---|---|
Parameter type |
String |
Syntax |
|
Default value |
|
Modifiable |
You can use
All other modifications of this parameter require you to update the initialization file and restart the instance. |
Modifiable in a PDB |
Yes |
Basic |
No |
Oracle RAC |
All instances should use the same value. |
The following values can be set:
-
DEFAULT
The IM column store is populated with objects that are specified as
INMEMORY
. -
OFF
Even if the IM column store is configured on this instance, no objects are populated in memory.
-
BASE_LEVEL
Enables Database In-Memory Base Level. The Base Level lets you to experiment with Oracle Database In-Memory features without purchasing the Oracle Database In-Memory option.
When the Base Level is enabled, the value of the
INMEMORY_SIZE
initialization parameter is limited to 16 GB for a CDB. In an Oracle RAC environment, the value ofINMEMORY_SIZE
is limited to 16 GB for each instance. The compression level for all objects and columns is automatically and transparently set toQUERY
LOW
. Automatic In-Memory is disabled, and In-Memory Column Store feature tracking is tracked for “In-Memory Base Level” rather than “In-Memory Column Store.” The CellMemory feature is disabled for Oracle Exadata. -
CELLMEMORY_LEVEL
CellMemory is an Exadata feature that allows you to use Exadata Smart Flash Cache to populate data in in-memory columnar format. In older releases of Oracle Database, in order to use the CellMemory feature, you were required to enable the IM column store (by setting
INMEMORY_SIZE
to a value greater than0
), even if you had no intention of using the IM column store. This incurred the overhead of enabling the IM column store without any benefit. Starting with Oracle Database release 19c, version 19.8, you can use the CellMemory feature without enabling the IM column store by settingINMEMORY_FORCE=CELLMEMORY_LEVEL
andINMEMORY_SIZE=0
. With these settings, the IM column store is not enabled and queries can use CellMemory to scan objects.Note that if the value of
INMEMORY_SIZE
is greater than0
, then settingINMEMORY_FORCE=CELLMEMORY_LEVEL
is equivalent to settingINMEMORY_FORCE=DEFAULT
. The IM column store is enabled, even if you only use CellMemory.
See Also:
-
“INMEMORY_CLAUSE_DEFAULT”
-
“INMEMORY_MAX_POPULATE_SERVERS”
-
“INMEMORY_QUERY”
-
“INMEMORY_SIZE”
-
Oracle Database In-Memory
Guide for an introduction to the IM column store -
Oracle Database In-Memory
Guide for more information about the IM column store -
Oracle Database Licensing
Information User Manual to learn which database offerings support the Database In-Memory Base Level feature