Parámetros de inicialización

Autonomous Database configura los parámetros de inicialización de base de datos de forma automática al aprovisionar una base de datos. No es necesario definir ningún parámetro de inicialización para empezar a utilizar el servicio. Sin embargo, puede modificar algunos parámetros si es necesario.

Lista de parámetros de inicialización que se pueden modificar

APPROX_FOR_AGGREGATION
APPROX_FOR_COUNT_DISTINCT
APPROX_FOR_PERCENTILE
BLANK_TRIMMING (Allowed only with ALTER SYSTEM)
CLIENT_PREFETCH_ROWS (see CLIENT_PREFETCH_ROWS
CONSTRAINTS (Allowed only with ALTER SESSION)
CONTAINER (Allowed only with ALTER SESSION)
CONTAINER_DATA
CURRENT_SCHEMA (Allowed only with ALTER SESSION)
CURSOR_INVALIDATION (Allowed only with ALTER SESSION)
CURSOR_SHARING
DDL_LOCK_TIMEOUT
DEFAULT_COLLATION (Allowed only with ALTER SESSION)
DEFAULT_CREDENTIAL (Allowed only with ALTER SESSION)
EDITION (Allowed only with ALTER SESSION)
FIXED_DATE (Allowed only with ALTER SYSTEM)
IGNORE_SESSION_SET_PARAM_ERRORS
ISOLATION_LEVEL (Allowed only with ALTER SESSION)
JOB_QUEUE_PROCESSES (Allowed only with ALTER SYSTEM)
LDAP_DIRECTORY_ACCESS
LOAD_WITHOUT_COMPILE 
MAX_IDLE_TIME (Allowed only with ALTER SYSTEM)
MAX_STRING_SIZE (See Data Types for details)
NLS_CALENDAR
NLS_COMP
NLS_CURRENCY
NLS_DATE_FORMAT
NLS_DATE_LANGUAGE
NLS_DUAL_CURRENCY
NLS_ISO_CURRENCY
NLS_LANGUAGE
NLS_LENGTH_SEMANTICS
NLS_NCHAR_CONV_EXCP
NLS_NUMERIC_CHARACTERS
NLS_SORT
NLS_TERRITORY
NLS_TIME_FORMAT
NLS_TIME_TZ_FORMAT
NLS_TIMESTAMP_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
OPTIMIZER_CAPTURE_SQL_QUARANTINE
OPTIMIZER_IGNORE_HINTS
OPTIMIZER_IGNORE_PARALLEL_HINTS
OPTIMIZER_MODE
OPTIMIZER_REAL_TIME_STATISTICS
OPTIMIZER_USE_SQL_QUARANTINE
PLSCOPE_SETTINGS
PLSQL_CCFLAGS
PLSQL_DEBUG
PLSQL_OPTIMIZE_LEVEL
PLSQL_WARNINGS
QUERY_REWRITE_INTEGRITY
READ_ONLY (Allowed only with ALTER SESSION)
RECYCLE_BIN 
REMOTE_DEPENDENCIES_MODE
RESULT_CACHE_INTEGRITY (See RESULT_CACHE_INTEGRITY)
RESULT_CACHE_MODE (See RESULT_CACHE_MODE)
SESSION_EXIT_ON_PACKAGE_STATE_ERROR (Allowed only with ALTER SYSTEM) See SESSION_EXIT_ON_PACKAGE_STATE_ERROR
SKIP_UNUSABLE_INEDEXES
SQL_TRACE (Allowed only with ALTER SESSION) See Perform SQL Tracing on Autonomous Database for details
SQL_TRANSLATION_PROFILE (Allowed only with ALTER SESSION)
STATISTICS_LEVEL (Allowed only with ALTER SESSION)
SYSDATE_AT_DBTIMEZONE (See SYSDATE_AT_DBTIMEZONE Select a Time Zone for SYSDATE on Autonomous Database)
TIMEZONE (Allowed only with ALTER SESSION)

Para obtener más información sobre los parámetros de inicialización, consulte Oracle Database Reference. Para obtener más información sobre TIME_ZONE, consulte Oracle Database SQL Language Reference.

Para obtener más información sobre OPTIMIZER_IGNORE_HINTS y OPTIMIZER_IGNORE_PARALLEL_HINTS, consulte Gestión de estadísticas del optimizador en Autonomous Database.

SESSION_EXIT_ON_PACKAGE_STATE_ERROR

SESSION_EXIT_ON_PACKAGE_STATE_ERROR habilita o deshabilita la gestión especial de paquetes PL/SQL con estado que se ejecutan en una sesión.

Propiedad Descripción
Tipo de Parámetro Booleano
Valor por defecto FALSE
Modificable ALTER SYSTEM
Rango de valores TRUE | FALSE

SESSION_EXIT_ON_PACKAGE_STATE_ERROR especifica la gestión de un paquete PL/SQL con estado que se ejecuta en una sesión. Cuando se modifica un paquete de este tipo, como durante el mantenimiento planificado de los objetos proporcionados por Oracle, las sesiones que tienen una instancia activa del paquete reciben el siguiente error cuando intentan ejecutar el paquete:

ORA-4068 existing state of package has been discarded

Sin embargo, es posible que el código de aplicación que reciba el error ORA-4068 no esté equipado para manejar este error con su lógica de reintentos.

La definición de SESSION_EXIT_ON_PACKAGE_STATE_ERROR en TRUE proporciona una gestión diferente para este caso. Cuando el valor de SESSION_EXIT_ON_PACKAGE_STATE_ERROR es TRUE, en lugar de solo emitir el error ORA-4068 cuando se descarta el estado del paquete, la sesión se cierra inmediatamente. Esto puede ser útil porque muchas aplicaciones pueden gestionar la terminación de sesión restableciendo de forma automática y transparente la conexión.

SYSDATE_AT_DBTIMEZONE Seleccione una zona horaria para SYSDATE en Autonomous Database

SYSDATE_AT_DBTIMEZONE permite un manejo especial en una sesión para el valor de fecha y hora devuelto en las llamadas a SYSDATE y SYSTIMESTAMP.

Según el valor de SYSDATE_AT_DBTIMEZONE, puede ver la fecha y la hora según la zona horaria por defecto de Autonomous Database, la hora universal coordinada (UTC) o la zona horaria definida en la base de datos.

Propiedad Descripción
Tipo de Parámetro Booleano
Valor por defecto FALSE
Modificable ALTER SESSION, ALTER SYSTEM
Rango de valores TRUE | FALSE

Zona horaria por defecto de Autonomous Database

La zona horaria por defecto de Autonomous Database es la hora universal coordinada (UTC) y, por defecto, las llamadas a SYSDATE y SYSTIMESTAMP devuelven la fecha y la hora en UTC.

Para cambiar la zona horaria de la base de datos, puede ejecutar la siguiente sentencia. En este ejemplo, se define la zona horaria de la base de datos como UTC-5.

ALTER DATABASE SET TIME_ZONE='-05:00';
Nota

Para que se apliquen los cambios, debe reiniciar la instancia de Autonomous Database.

Después de definir la zona horaria de la base de datos, por defecto SYSDATE y SYSTIMESTAMP siguen devolviendo la fecha y la hora en formato UTC (el valor de SYSDATE_AT_DBTIMEZONE es FALSE por defecto). Si define SYSDATE_AT_DBTIMEZONE en TRUE en una sesión, SYSDATE y SYSTIMESTAMP devuelven la zona horaria de la base de datos.

Consulte Configuración de la zona horaria de la base de datos para obtener más información sobre el uso de la cláusula SET TIME_ZONE con ALTER DATABASE.

Uso de SYSDATE_AT_DBTIMEZONE en una sesión

Cuando el valor de SYSDATE_AT_DBTIMEZONE es FALSE en una sesión, las llamadas a SYSDATE y SYSTIMESTAMP devuelven valores basados en la zona horaria por defecto de Autonomous Database, hora universal coordinada (UTC).

Cuando el valor de SYSDATE_AT_DBTIMEZONE es TRUE en una sesión, las llamadas a SYSDATE o SYSTIMESTAMP devuelven la fecha y la hora según la zona horaria de la base de datos.

Nota

La definición de SYSDATE_AT_DBTIMEZONE en TRUE solo afecta al uso de SYSDATE y SYSTIMESTAMP como operadores en SQL de aplicación (por ejemplo, en consultas, operaciones DML y CTAS). Al utilizar este parámetro, se recomienda que la zona horaria del cliente/sesión coincida con la zona horaria de la base de datos.

Ejemplo

En el siguiente ejemplo, se devuelven fechas y horas para dos zonas horarias diferentes, según el valor del parámetro SYSDATE_AT_DBTIMEZONE:

SQL> SELECT DBTIMEZONE FROM DUAL;

DBTIMEZONE
_____________
-05:00

SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=FALSE;

Session altered.

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
______________________________________
27-JAN-22 06.59.45.708082000 PM GMT

SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=TRUE;

Session altered.

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
_________________________________________
27-JAN-22 02.14.47.578946000 PM -05:00 
Nota

Cuando se ejecuta una consulta SYSDATE o SYSTIMESTAMP en la hoja de trabajo de SQL de Database Actions, el valor de fecha y hora que se devuelve es UTC (cuando el parámetro SYSDATE_AT_DBTIMEZONE se define en TRUE o FALSE). Para obtener la zona horaria de la base de datos al trabajar en Database Actions, utilice TO_CHAR() de la siguiente forma:

SQL> SELECT TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SS TZH":"TZM') FROM DUAL;

TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SSTZH":"TZM')
___________________________________________________________
2022-01-27T14:15:00 -05:00

CLIENT_PREFETCH_ROWS

Defina el parámetro CLIENT_PREFETCH_ROWS para permitir a los clientes reducir el número de recorridos redondos necesarios al recuperar filas de un juego de resultados de consulta.

CLIENT_PREFETCH_ROWS especifica el número de filas que el controlador de cliente de Oracle debe recuperar previamente, sin realizar ningún cambio en la aplicación cliente. El controlador de cliente almacena en buffer las filas recuperadas previamente después de cada ejecución de consulta correcta y para cada solicitud de recuperación posterior enviada a la base de datos.

Este parámetro solo se aplica a los clientes que utilizan Oracle Call Interface (OCI) para conectarse a la base de datos.

Este parámetro solo se aplica a Oracle Instant Client/Oracle Database Client 19.17 (o posterior) y 21.8 (o posterior) para todas las plataformas.

Propiedad Descripción
Tipo de Parámetro Entero
Sintaxis CLIENT_PREFETCH_ROWS = integer
Valor por defecto 0 (solo se aplica la configuración del cliente)
Modificable ALTER SYSTEM, ALTER SESSION
Rango de valores De 0 a UB4MAXVAL (4294967295)
Básico No

El parámetro CLIENT_PREFETCH_ROWS se puede definir con ALTER SESSION o ALTER SYSTEM. Si el valor del parámetro cambia mediante ALTER SESSION, el nuevo valor entra en vigor para esa sesión específica en las siguientes recuperaciones de juegos de resultados. Si el valor del parámetro cambia mediante ALTER SYSTEM, el nuevo valor se aplica a las sentencias que se ejecutan en conexiones creadas después del comando ALTER SYSTEM.

Por ejemplo, si CLIENT_PREFETCH_ROWS se define en 100 y una aplicación cliente solicita recuperar 10 filas, se devuelve un total de 110 filas al controlador de cliente. Las primeras 10 filas de las 110 filas se proporcionan a la aplicación y el controlador de cliente almacena internamente en buffer las 100 filas restantes. Las siguientes 10 filas se recuperan de la aplicación cliente, cada una con 10 filas por iteración de recuperación se puede satisfacer a partir de las 100 filas que el controlador de cliente almacena en buffer internamente. Este proceso reduce el número de recorridos en red necesarios hacia y desde la base de datos. En este ejemplo, en la 11a recuperación, se produce un nuevo recorrido de ida y vuelta de red y la base de datos devuelve el siguiente lote de 110 filas, siempre que el juego de resultados no se haya agotado y el ciclo se repita.

Notas para definir CLIENT_PREFETCH_ROWS:

  • Cuando CLIENT_PREFETCH_ROWS se define en un valor distinto de cero, su valor tiene prioridad sobre el valor OCI_ATTR_PREFETCH_ROWS por defecto para el recuento de filas de recuperación previa.

  • Si el valor OCI_ATTR_PREFETCH_ROWS se define en un valor no por defecto, el valor CLIENT_PREFETCH_ROWS se ignora para el recuento de filas de recuperación previa.

  • Uso de CLIENT_PREFETCH_ROWS con OCIAttrSet():

    OCI_ATTR_PREFETCH_ROWS define el número de filas de nivel superior que se van a recuperar previamente. El valor predeterminado es 1 fila. Sin embargo, si se define CLIENT_PREFETCH_ROWS, el número de filas de nivel superior que se van a recuperar previamente viene determinado por la siguiente prioridad:

    1. Si define el atributo OCI_ATTR_PREFETCH_ROWS mediante la función OCIAttrSet() o oraaccess.xml como valor '1', el valor CLIENT_PREFETCH_ROWS del parámetro de inicialización de la base de datos tiene prioridad y determina el número de filas de nivel superior que se van a recuperar previamente.

    2. Si define el atributo OCI_ATTR_PREFETCH_ROWS mediante la función OCIAttrSet() o oraaccess.xml como valor 'x' distinto de 1, se recuperará previamente el número de filas de nivel superior 'x' y se ignorará el parámetro de inicialización de la base de datos CLIENT_PREFETCH_ROWS.

    3. Si no define un valor OCI_ATTR_PREFETCH_ROWS mediante OCIAttrSet() o oraaccess.xml, el valor CLIENT_PREFETCH_ROWS del parámetro de inicialización de la base de datos tiene prioridad y determina el número de filas de nivel superior que se van a recuperar previamente.

  • Uso de CLIENT_PREFETCH_ROWS con OCIAttrGet():

    La función OCIAttrGet() devuelve el juego de valores de fila de recuperación previa efectiva de OCI_ATTR_PREFETCH_ROWS, oraaccess.xml y el parámetro de inicialización de la base de datos CLIENT_PREFETCH_ROWS. Si se define el valor OCI_ATTR_PREFETCH_MEMORY, puede que el valor devuelto por OCIAttrGet() no sea el valor de filas de recuperación previa final y que esté restringido al número máximo de filas permitido por el valor de memoria especificado por el atributo OCI_ATTR_PREFETCH_MEMORY.

Consulte también:

JOB_QUEUE_PROCESSES

Defina el parámetro JOB_QUEUE_PROCESSES para especificar el número máximo de trabajadores de trabajos que se pueden crear para ejecutar trabajos de Oracle Scheduler (DBMS_SCHEDULER).

Si se define el valor en 0, se desactivan los trabajos del planificador no proporcionados por Oracle.

Propiedad Descripción
Tipo de Parámetro Entero
Sintaxis JOB_QUEUE_PROCESSES = integer
Valor por defecto

El valor por defecto depende del recuento de ECPU (recuento de OCPU si la base de datos utiliza OCPU) y la configuración de la escala automática de ECPU (escala automática de OCPU si la base de datos utiliza OCPU). Consulte la tabla a continuación para ver información detallada.

Modificable ALTER SYSTEM
Rango de valores

Valor mínimo: 0

El valor máximo depende del recuento de ECPU (recuento de OCPU si la base de datos utiliza OCPU) y la configuración de la escala automática de ECPU (escala automática de OCPU si la base de datos utiliza OCPU), como se muestra en la siguiente tabla.

Los valores por defecto y máximos para JOB_QUEUE_PROCESSES varían en función del modelo informático que utilice. Consulte Modelos de recursos informáticos en Autonomous Database para obtener más información.

Modelo informático Valor por defecto y máximo con la escala automática desactivada Valor por defecto y máximo con la escala automática activada
ECPU 7,5 x recuento de ECPU 22,5 x recuento de ECPU
OCPU 30 x recuento de OCPU 90 x recuento de OCPU

El coordinador de trabajos de Oracle Scheduler y los trabajadores del trabajo están controlados por el parámetro JOB_QUEUE_PROCESSES. El programador ajusta automáticamente el número real de trabajadores de trabajos creados para los trabajos de Oracle Scheduler en función de varios factores, incluidos los recursos disponibles, la configuración del gestor de recursos y los trabajos en ejecución.

El valor por defecto para JOB_QUEUE_PROCESSES ofrece un compromiso entre la calidad del servicio para las aplicaciones y el uso razonable de los recursos del sistema. Sin embargo, es posible que el valor por defecto no se adapte a todos los entornos.

Al definir el valor de JOB_QUEUE_PROCESSES en 0, se desactivan los trabajos del planificador no proporcionados por Oracle. Cuando JOB_QUEUE_PROCESSES está definido en 0, no se desactivan los trabajos internos para los usuarios proporcionados por Oracle (los trabajos relacionados con el servicio ejecutados por los usuarios proporcionados por Oracle siguen programados).

Los usuarios proporcionados por Oracle son usuarios marcados como ORACLE_MAINTAINED con el valor Y. Los usuarios no proporcionados por Oracle son usuarios marcados como ORACLE_MAINTAINED con el valor N.

Consulte ALL_USERS para obtener más información.

RESULT_CACHE_INTEGRITY

Defina el parámetro RESULT_CACHE_INTEGRITY para especificar si la caché de resultados considera las consultas que utilizan construcciones posiblemente no deterministas como candidatas para el almacenamiento en caché de resultados.

Propiedad Descripción
Tipo de Parámetro Cadena
Sintaxis RESULT_CACHE_INTEGRITY = { ENFORCED | TRUSTED }
Valor por defecto

Para Autonomous Database, el valor por defecto es: ENFORCED

Modificable ALTER SYSTEM

Valores

  • ENFORCED: independientemente de la configuración de RESULT_CACHE_MODE o de las indicaciones especificadas, solo las construcciones deterministas son elegibles para el almacenamiento en caché de resultados. Por ejemplo, las consultas que utilizan funciones PL/SQL que no se declaran como deterministas nunca se almacenan en caché (a menos que las funciones se declaren como deterministas, los resultados de la consulta con dichas funciones no se almacenarán en caché).

  • TRUSTED: la base de datos respeta el valor de RESULT_CACHE_MODE y las indicaciones especificadas y considerará las consultas que utilicen construcciones posiblemente no deterministas como candidatos para el almacenamiento en caché de resultados. Por ejemplo, las consultas que utilizan funciones PL/SQL que no se declaran como deterministas se pueden almacenar en caché. Sin embargo, tenga en cuenta que los resultados que se sabe que no son deterministas no se almacenan en caché (por ejemplo, SYSDATE o construcciones que implican SYSDATE).

RESULT_CACHE_MODE

Defina el parámetro RESULT_CACHE_MODE para especificar qué consultas se pueden seleccionar para almacenar juegos de resultados en la caché de resultados. Solo los planes de ejecución de consultas con el operador de caché de resultados intentarán leer o escribir en la caché de resultados.

Propiedad Descripción
Tipo de Parámetro Cadena
Sintaxis RESULT_CACHE_MODE = { MANUAL | MANUAL_TEMP | FORCE | FORCE_TEMP }
Valor por defecto

Para Autonomous Database con el tipo de carga de trabajo definido en Data Warehouse: FORCE

Para los tipos de carga de trabajo Procesamiento de transacciones, JSON o APEX: MANUAL

Modificable ALTER SESSION, ALTER SYSTEM

Consulte RESULT_CACHE_MODE para obtener más información.

Uso de Indicaciones de Caché de Resultados SQL

Utilizar indicaciones de caché de resultados a nivel de aplicación para controlar el comportamiento de caché. Las indicaciones de la caché de resultados SQL tienen prioridad sobre el modo de caché de resultados y las anotaciones de la tabla de caché de resultados.

Puede utilizar indicaciones de caché de resultados SQL de las siguientes formas:

  • Uso de la Indicación RESULT_CACHE

  • Uso de la Indicación NO_RESULT_CACHE

  • Uso de la Indicación RESULT_CACHE en Vistas

Uso de la Indicación RESULT_CACHE

Cuando el modo de caché de resultados es MANUAL, la indicación /*+ RESULT_CACHE */ indica a la base de datos que almacene en caché los resultados de un bloque de consultas y que utilice los resultados en caché en futuras ejecuciones.

Consulte Uso de la Indicación RESULT_CACHE para obtener más información.

Uso de la Indicación NO_RESULT_CACHE

La indicación /*+ NO_RESULT_CACHE */ indica a la base de datos que no almacene en caché los resultados en las cachés de resultados del servidor o del cliente.

Consulte Uso de la Indicación NO_RESULT_CACHE para obtener más información.

Uso de la Indicación RESULT_CACHE en Vistas

La indicación RESULT_CACHE solo se aplica al bloque de consulta en el que se especifica la indicación. Si la indicación se especifica sólo en una vista, sólo se almacenan en caché estos resultados.

Consulte Uso de la Indicación RESULT_CACHE en Vistas para obtener más información.