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

INMEMORY_FORCE = { DEFAULT | OFF | BASE_LEVEL | CELLMEMORY_LEVEL }

Default value

DEFAULT

Modifiable

You can use ALTER SYSTEM to dynamically modify this parameter setting as follows:

  • From DEFAULT to OFF
  • From OFF to DEFAULT
  • From BASE_LEVEL to DEFAULT
  • From CELLMEMORY_LEVEL to DEFAULT
  • From CELLMEMORY_LEVEL to OFF

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 of INMEMORY_SIZE is limited to 16 GB for each instance. The compression level for all objects and columns is automatically and transparently set to QUERY 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 than 0), 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 setting INMEMORY_FORCE=CELLMEMORY_LEVEL and INMEMORY_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 than 0, then setting INMEMORY_FORCE=CELLMEMORY_LEVEL is equivalent to setting INMEMORY_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


数据运维技术 » Oracle 参数 INMEMORY_FORCE 官方解释,作用,如何配置最优化建议