Al igual que en la versión 12c R2 12.2.0.1, la opción de almacenamiento columnar en memoria, no viene activada de facto en 18c 18.3.0
Para habilitar dicha característica, es necesario configurar el parámetro INMEMORY_SIZE a un tamaño distinto de 0.
Cuando el valor es 0, indica que esta opción es deshabilitada.
El mínimo de tamaño que se puede asignar es de 100MB.
En un contenedor de base de datos 18c 18.3 si la opción de administración de memoria automática ha sido activada, a la hora de configurar 100MB, el tamaño del las áreas variables ( en donde se encuentra el SHARED_POOL ) se verá afectada negativamente en un 2.5%, mientras que el área de DATABASE_BUFFER, lo hará en un 6.5%.
En números estamos hablando, que al configurar 100MB para el almacenamiento columnar en memoria, 17MB y 100MB ( por temas de la asignación por nivel granular ) respectivamente de los tamaños de áreas compartidas y del BUFFER CACHE, serán tomadas para la nueva configuración del BUFFER de memoria.
Para repasar, en las revisiones 1 y 2 ( 12.1 y 12.2 ) de Oracle 12c, la memoria para el buffer chace, el shared pool, large pool y Java Pool, es definido a través de unidades de granularidad.
Si el tamaño máximo del SGA es menor a 1GB, la unidad de granularidad es de de 4MB. Si el SGA es mayor a 1GB, la unidad de granularidad es de 16MB.
Los requisitos para activar IM en 18c son:
- Habilitada la opción de almacenamiento columnar IM
- El parámetro de compatiblidad debe ser configurado a 12.2.0 o superior
- La base de datos debe ser arrancada con el archivo de configuración de parámetros binario (SPFILE)
- El valor del parámetro INMEMORY_SIZE debe ser configurado al menos a 128MB
Vamos a la configuración
SQL> connect sys/oracle@cdb1 as sysdba
Connected.
SQL> ALTER SYSTEM SET INMEMORY_SIZE =100M scope=both;
ALTER SYSTEM SET INMEMORY_SIZE =100M scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-02095: specified initialization parameter cannot be modified
SQL> ALTER SYSTEM SET INMEMORY_SIZE =100M scope=spfile;
System altered.
[oracle@lab01 ~]$ sqlplus /nolog
SQL*Plus: Release 18.0.0.0.0 - Production on Mon Oct 15 13:46:01 2018
Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
SQL> connect / as sysdb
SQL> startup
ORACLE instance started.
Total System Global Area 2516580872 bytes
Fixed Size 8899080 bytes
Variable Size 654311424 bytes
Database Buffers 1728053248 bytes
Redo Buffers 7876608 bytes
In-Memory Area 117440512 bytes
Database mounted.
Database opened.
SQL> show parameter buffer
NAME TYPE VALUE
------------------------------------ ----------- -------------------
buffer_pool_keep string
buffer_pool_recycle string
db_block_buffers integer 0
log_buffer big integer 7360K
SQL> show parameter shared
NAME TYPE VALUE
------------------------------------ ----------- -------------------
hi_shared_memory_address integer 0
max_shared_servers integer
shared_memory_address integer 0
shared_pool_reserved_size big integer 24326963
shared_pool_size big integer 0
shared_server_sessions integer
shared_servers integer 1
SQL> show parameter compatib
NAME TYPE VALUE
------------------------------------ ----------- -------------------
compatible string 18.0.0
noncdb_compatible boolean FALSE
plsql_v2_compatibility boolean FALSE
SQL> show parameter in-memory
SQL> show parameter INMEMORY
NAME TYPE VALUE
------------------------------------ ----------- -------------------
inmemory_adg_enabled boolean TRUE
inmemory_automatic_level string OFF
inmemory_clause_default string
inmemory_expressions_usage string ENABLE
inmemory_force string DEFAULT
inmemory_max_populate_servers integer 2
inmemory_optimized_arithmetic string DISABLE
inmemory_prefer_xmem_memcompress string
inmemory_prefer_xmem_priority string
inmemory_query string ENABLE
inmemory_size big integer 112M
inmemory_trickle_repopulate_servers_ integer 1
percent
inmemory_virtual_columns string MANUAL
inmemory_xmem_size big integer 0
optimizer_inmemory_aware boolean TRUE
Configuración dinámica del tamaño de INMEMORY CACHE.
SQL> alter system set inmemory_size=120M scope=both;
alter system set inmemory_size=120M scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-02095: specified initialization parameter cannot be modified
Recuerden el valor del parámetro debe ser configurado a un valor superior a 128MB en el parámetro INMEMORY_SIZE
System altered.
SQL>
No hay comentarios:
Publicar un comentario
Te agradezco tus comentarios. Te esperamos de vuelta.