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 |
|
Default value |
|
Modifiable |
|
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