Oracle 参数 INMEMORY_QUERY 官方解释,作用,如何配置最优化建议

本站中文解释

INMEMORY_QUERY参数控制是否使用In-memory Column Store(IMCS)来执行查询。IMCS是一种基于内存的列式存储器(Column Store),可以将表中的压缩列存储在内存中,从而大大提高了查询速度和吞吐量。如果启用查询优化器,查询编译器将自动行动INMEMORY_QUERY参数。它默认设置为TRUE,每次使用优化器编译查询时,都会考虑使用IMCS进行查询。

正确设置INMEMORY_QUERY参数的步骤如下:

1.确定服务器的内存是否足够支持IMCS:可以使用内存余量查询进行测试,以确定内存是否足够支持IMCS。

2.确定要加载到内存中的表:要加载到内存中的表必须满足以下条件:表必须是只读的;表大小必须不超过可用内存;必须有足够的空间在内存中加载所有数据,包括列的压缩特性的影响;精确的列性质必须可用。

3.将表加载到内存中:使用Oracle的ALTER TABLE命令将表设置为INMEMORY,可以将表从缓存中加载到内存中。

4.测试查询的性能:使用EXPLAIN PLAN命令检查是否使用了IMCS。如果SQL不使用IMCS,可以尝试调整相关参数,以改善性能。

5.将INMEMORY_QUERY参数回复到默认设置:如果查询已成功完成,请将INMEMORY_QUERY参数设置回到其默认值TRUE。

另外,如果将只读表加载到内存中,并且被频繁使用,也可以考虑使用Oracle的NEW QUERY命令来缓解内存的压力。

官方英文解释

INMEMORY_QUERY is used to enable or disable in-memory queries for the entire database at the session or system level.

Property Description

Parameter type

String

Syntax

INMEMORY_QUERY = { ENABLE | DISABLE }

Default value

ENABLE

Modifiable

ALTER SESSION, ALTER SYSTEM

Modifiable in a PDB

Yes

Basic

No

Oracle RAC

All instances should use the same value.

This parameter is helpful when you want to test workloads with and without the use of the In-Memory Column Store (IM column store).

This parameter enables in-memory queries for the entire database by default when the INMEMORY_SIZE parameter is specified.

Set this parameter to DISABLE if you want to disable in-memory queries.

See Also:

  • “INMEMORY_CLAUSE_DEFAULT”

  • “INMEMORY_FORCE”

  • “INMEMORY_MAX_POPULATE_SERVERS”

  • “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 参数 INMEMORY_QUERY 官方解释,作用,如何配置最优化建议