프린트 하기

내맘대로긍정이 알려주는

Oracle 23ai 신기능
무료 세미나 발표자료

다운로드 trending_flat

OS환경 : Oracle Linux 7.6 (64bit)

 

DB 환경 : Oracle Database 19.10.0.0

 

방법 : 오라클 19c 옵티마이저에 영향을 주는 파라미터 목록 

오라클에서 사용하는 파라미터로 실행계획을 생성하는 옵티마이저에게 영향을 줄수 있음

아래는 가장 중요한 파라미터에 대해서만 설명함

 

 

구글번역기 사용

초기화 매개변수 설명
CURSOR_INVALIDATION
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/CURSOR_INVALIDATION.html#GUID-6BAB61E7-FABA-41D3-B73A-EB828A6767E5
DDL 문의 기본 커서 무효화 수준을 제공합니다.IMMEDIATEOracle Database 12c 릴리스 2(12.2) 이전 릴리스에서와 같이 DDL에 대해 동일한 커서 무효화 동작을 설정합니다 . 이것이 기본값입니다.
DEFERRED응용 프로그램을 변경하지 않고도 DDL에 대해 축소된 커서 무효화를 활용할 수 있습니다. 지연된 무효화는 커서 무효화 횟수를 줄이고 시간이 지남에 따라 재컴파일 워크로드를 분산시킵니다. 이러한 이유로 커서는 재컴파일될 때까지 최적이 아닌 계획으로 실행될 수 있으며 약간의 실행 시간 오버헤드가 발생할 수 있습니다.
이 매개변수는 SYSTEM또는 SESSION수준에서 설정할 수 있습니다. " 공유 커서의 수명 주기 정보 " 를 참조하십시오 .
CURSOR_SHARING
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/CURSOR_SHARING.html#GUID-455358F8-D657-49A2-B32B-13A1DC53E7D2
관련 테스트 : https://positivemh.tistory.com/845
SQL 문의 리터럴 값을 바인드 변수로 변환합니다. 값을 변환하면 커서 공유가 향상되고 SQL 문의 실행 계획에 영향을 줄 수 있습니다. 옵티마이저는 실제 리터럴 값이 아니라 바인드 변수의 존재를 기반으로 실행 계획을 생성합니다.
FORCE기존 커서를 공유하거나 커서 계획이 최적이 아닌 경우 새 커서 생성을 활성화하려면 로 설정합니다 . EXACT텍스트가 동일한 명령문만 동일한 커서를 공유할 수 있도록 하려면 로 설정하십시오 .
DB_FILE_MULTIBLOCK_READ_COUNT
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/DB_FILE_MULTIBLOCK_READ_COUNT.html#GUID-69E45087-14DF-492B-B55A-8F2E936947A5
전체 테이블 스캔 또는 인덱스 빠른 전체 스캔 중에 단일 I/O에서 읽은 블록 수를 지정합니다. 옵티마이저는 이 매개변수의 값을 사용하여 전체 테이블 스캔 및 인덱스 빠른 전체 스캔 비용을 계산합니다. 값이 클수록 전체 테이블 스캔 비용이 낮아지므로 옵티마이저가 인덱스 스캔보다 전체 테이블 스캔을 선택할 수 있습니다.
이 매개변수의 기본값은 데이터베이스가 효율적으로 수행할 수 있는 최대 I/O 크기에 해당합니다. 이 값은 플랫폼에 따라 다르며 대부분의 플랫폼에서 1MB입니다. 파라미터는 블록 단위로 표현하기 때문에 효율적으로 수행할 수 있는 최대 I/O 크기를 표준 블록 크기로 나눈 값으로 설정한다. 세션 수가 매우 많으면 버퍼 캐시가 너무 많은 테이블 스캔 버퍼로 가득 차는 것을 방지하기 위해 다중 블록 읽기 수 값이 감소합니다.
OPTIMIZER_ADAPTIVE_PLANS
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/OPTIMIZER_ADAPTIVE_PLANS.html#GUID-58C3E867-36BA-449A-B452-4E90FE6DCF05
적응 계획을 제어합니다. 적응 계획에는 대체 선택이 있습니다. 옵티마이저는 쿼리가 실행될 때 수집된 통계를 기반으로 런타임에 계획을 결정합니다.
기본적으로 이 매개변수는 true적응 계획이 활성화됨을 의미하는 입니다. 이 매개변수를 설정 false하면 다음 기능이 비활성화됩니다.
  • 중첩 루프 및 해시 조인 선택
  • 별 변환 비트맵 가지치기
  • 적응형 병렬 분배 방식
" 적응 쿼리 계획 정보 " 를 참조하십시오 .
OPTIMIZER_ADAPTIVE_REPORTING_ONLY
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/OPTIMIZER_ADAPTIVE_REPORTING_ONLY.html#GUID-8DD128F9-4891-4061-9B2D-9D45315D44FB
자동 재최적화 및 적응형 계획에 대한 보고 모드를 제어합니다( " 적응형 쿼리 계획 " 참조). 기본적으로 보고 모드는 꺼짐( false)이며 적응형 최적화가 활성화되어 있음을 의미합니다.
로 설정하면 true적응형 최적화가 보고 전용 모드에서 실행됩니다. 이 경우 데이터베이스는 적응형 최적화에 필요한 정보를 수집하지만 계획을 변경하기 위한 조치를 취하지 않습니다. 예를 들어 적응 계획은 항상 기본 계획을 선택하지만 데이터베이스는 매개변수가 로 설정된 경우 데이터베이스가 사용할 계획에 대한 정보를 수집합니다 false. 를 사용하여 보고서를 볼 수 있습니다 DBMS_XPLAN.DISPLAY_CURSOR.
OPTIMIZER_ADAPTIVE_STATISTICS
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/OPTIMIZER_ADAPTIVE_STATISTICS.html#GUID-D52B4342-3887-4054-A65C-5AEA83F69E35
적응형 통계를 제어합니다. 옵티마이저는 쿼리 술어가 기본 테이블 통계에만 의존하기에는 너무 복잡할 때 적응형 통계를 사용할 수 있습니다.
기본적으로 OPTIMIZER_ADAPTIVE_STATISTICS는 false다음 기능이 비활성화되어 있음을 의미합니다.
  • SQL 계획 지시어
  • 통계 피드백
  • 적응형 동적 샘플링
" 적응 통계 " 를 참조하십시오 .
OPTIMIZER_MODE
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/OPTIMIZER_MODE.html#GUID-DE448A8A-992F-4BAB-9302-A020039641E5
데이터베이스 인스턴스 시작 시 옵티마이저 모드를 설정합니다. 가능한 값은 ALL_ROWS, FIRST_ROWS_n FIRST_ROWS입니다.
OPTIMIZER_INDEX_CACHING
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/OPTIMIZER_INDEX_CACHING.html#GUID-1601D366-1637-4235-98F6-57B4B7AD96D0
중첩 루프가 있는 인덱스 프로브의 비용 분석을 제어합니다. 0중첩 루프 및 IN 목록 반복기에 대한 인덱스 캐싱에 대한 최적화 프로그램 가정을 수정하는 버퍼 캐시의 인덱스 블록 비율 을 100나타내는 값의 범위입니다 . 의 값은 100인덱스 블록의 100%가 버퍼 캐시에서 발견될 가능성이 있다고 추론하므로 최적화 프로그램은 그에 따라 인덱스 프로브 또는 중첩 루프의 비용을 조정합니다. 인덱스 캐싱을 위해 실행 계획이 변경될 수 있으므로 이 매개변수를 설정할 때 주의하십시오.
OPTIMIZER_INDEX_COST_ADJ
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/OPTIMIZER_INDEX_COST_ADJ.html#GUID-BA25DBA7-3826-48CA-849B-6D8E3326A1B4
인덱스 프로브의 비용을 조정합니다. 값의 범위는 1입니다 10000. 기본값은 입니다 100. 이는 옵티마이저가 일반 비용 모델을 기반으로 인덱스를 액세스 경로로 평가함을 의미합니다. 값이 10이면 인덱스 액세스 경로 비용이 일반 인덱스 액세스 경로 비용의 1/10임을 의미합니다.
OPTIMIZER_INMEMORY_AWARE
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/OPTIMIZER_INMEMORY_AWARE.html#GUID-8506CD9E-AB48-47ED-9E1E-12BB59A4B3A1
이 매개변수는 IM 열 저장소, 테이블 확장, Bloom 필터 등에 대한 비용 모델을 포함하여 모든 Oracle Database In-Memory(Database In-Memory) 옵티마이저 기능을 활성화( TRUE) 또는 비활성화( )합니다. FALSE매개변수를 로 설정하면 옵티마이저가 SQL 문을 최적화하는 동안 테이블 속성 FALSE을 무시합니다 .INMEMORY
OPTIMIZER_REAL_TIME_STATISTICS
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/OPTIMIZER_REAL_TIME_STATISTICS.html#GUID-313C8DE2-6F01-49E3-962F-653065C14F57
OPTIMIZER_REAL_TIME_STATISTICS 초기화 매개변수가 로 설정 되면 trueOracle Database는 기존 DML 작업 중에 실시간 통계를 자동으로 수집합니다. 기본 설정은 실시간 통계 가 비활성화 false됨을 의미 합니다.
OPTIMIZER_SESSION_TYPE
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/OPTIMIZER_SESSION_TYPE.html#GUID-5D392CB8-B483-45F5-8230-210CE845BC42
데이터베이스가 자동 인덱스 확인 중에 명령문을 확인하는지 여부를 결정합니다. 기본값은 NORMAL이며 이는 문이 확인됨을 의미합니다. CRITICAL보다 우선합니다 NORMAL.
OPTIMIZER_SESSION_TYPE초기화 매개변수를 세션에서 로 설정하면 ADHOC이 세션에서 쿼리에 대한 자동 인덱싱을 일시 중지할 수 있습니다. 자동 인덱싱 프로세스는 인덱스 후보를 식별하거나 인덱스를 생성 및 확인하지 않습니다. 이 컨트롤은 임시 쿼리 또는 새 기능 테스트에 유용할 수 있습니다.
OPTIMIZER_USE_INVISIBLE_INDEXES
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/OPTIMIZER_USE_INVISIBLE_INDEXES.html#GUID-8816DFA5-3D98-41DD-B752-D384BC8DE12A
보이지 않는 인덱스의 사용을 활성화하거나 비활성화합니다.
QUERY_REWRITE_ENABLED
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/QUERY_REWRITE_ENABLED.html#GUID-4312A6E5-4DB0-4FD8-ADA8-5A0D833D2522
옵티마이저의 쿼리 재작성 기능을 활성화하거나 비활성화합니다.
TRUE기본값인 은 옵티마이저가 구체화된 뷰를 활용하여 성능을 향상시킬 수 있도록 합니다. FALSE옵티마이저의 쿼리 재작성 기능을 비활성화하고 최적화되지 않은 쿼리의 예상 쿼리 비용이 더 낮은 경우에도 구체화된 뷰를 사용하여 쿼리를 재작성하지 않도록 옵티마이저에 지시합니다. FORCE옵티마이저의 쿼리 재작성 기능을 활성화하고 최적화되지 않은 쿼리의 예상 쿼리 비용이 낮은 경우에도 구체화된 뷰를 사용하여 쿼리를 재작성하도록 옵티마이저에 지시합니다.
QUERY_REWRITE_INTEGRITY
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/QUERY_REWRITE_INTEGRITY.html#GUID-23655494-DF65-4F0E-A89F-8333222297F5
쿼리 재작성이 적용되는 정도를 결정합니다.
기본적으로 무결성 수준은 로 설정됩니다 ENFORCED. 이 모드에서는 모든 제약 조건을 검증해야 합니다. 데이터베이스는 적용되지 않은 제약 조건에 의존하는 쿼리 재작성 변환을 사용하지 않습니다. 따라서 를 사용하는 ENABLE NOVALIDATE RELY경우 일부 유형의 쿼리 재작성이 작동하지 않을 수 있습니다.
제약 조건이 모드일 때 쿼리 재작성을 활성화하려면 무결성 수준이 또는 NOVALIDATE이어야 합니다 . 모드 에서 옵티마이저는 차원 및 제약 조건에서 선언된 관계 가 올바른지 신뢰합니다. 모드 에서 옵티마이저는 유효하지만 오래된 데이터를 포함하는 구체화된 뷰와 최신 데이터를 포함하는 구체화된 뷰를 사용합니다. 이 모드는 최대 재작성 기능을 제공하지만 부정확한 결과를 생성할 위험이 있습니다. TRUSTEDSTALE_TOLERATEDTRUSTEDRELYSTALE_TOLERATED
RESULT_CACHE_MODE
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/RESULT_CACHE_MODE.html#GUID-DEC2BDE4-8CF4-4378-A04C-6EE50A0FA250
데이터베이스가 모든 쿼리에 대해 SQL 쿼리 결과 캐시를 사용하는지 또는 결과 캐시 힌트로 주석이 달린 쿼리에만 사용하는지 여부를 제어합니다. MANUAL(기본값)으로 설정 하면 RESULT_CACHE힌트를 사용하여 특정 결과가 캐시에 저장되도록 지정해야 합니다. 로 설정 FORCE하면 데이터베이스는 모든 결과를 캐시에 저장합니다.
이 매개변수를 설정할 때 결과 캐시가 PL/SQL 기능을 처리하는 방법을 고려하십시오. 데이터베이스는 PL/SQL 함수에 대한 데이터 종속성을 추적하는 것과 동일한 메커니즘을 사용하여 결과 캐시에서 쿼리 결과를 무효화하지만 그렇지 않으면 PL/SQL 함수를 포함하는 쿼리의 캐싱을 허용합니다. PL/SQL 함수 결과 캐시 무효화는 모든 종류의 종속성(예: 시퀀스, , 및 패키지 변수)을 추적하지 않기 때문에 SYSDATE이러한 SYS_CONTEXT함수를 호출하는 쿼리에서 쿼리 결과 캐시를 무차별적으로 사용하면 결과가 변경될 수 있습니다. 잘못된 결과. 따라서 결과 캐시를 활성화하도록 선택할 때, 특히 로 설정할 때 정확성과 성능을 고려 RESULT_CACHE_MODE하십시오 FORCE.
RESULT_CACHE_MAX_SIZE
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/RESULT_CACHE_MAX_SIZE.html#GUID-2D9F6563-C890-43BC-8EC0-1C372402F3A5
결과 캐시에 할당된 메모리를 변경합니다. 이 매개변수를 로 설정하면 0결과 캐시가 비활성화됩니다. 이 매개변수의 값은 지정된 값보다 크지 않은 32KB의 가장 큰 배수로 반올림됩니다. 반올림된 값이 0이면 기능이 비활성화됩니다.
RESULT_CACHE_MAX_RESULT
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/RESULT_CACHE_MAX_RESULT.html#GUID-C7E6D932-B35C-4E37-826A-14906921B71B
단일 결과가 사용할 수 있는 최대 캐시 메모리 양을 지정합니다. 기본값은 5%이지만 ~ 사이의 백분율 값을 지정할 수 1있습니다 100.
RESULT_CACHE_REMOTE_EXPIRATION
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/RESULT_CACHE_REMOTE_EXPIRATION.html#GUID-7607E994-50AC-4297-B84A-29A4BBD33374
원격 데이터베이스 객체에 의존하는 결과가 유효한 시간(분)을 지정합니다. 기본값은 0데이터베이스가 원격 개체를 사용하여 결과를 캐시하지 않아야 함을 의미하는 입니다. 이 매개변수를 0이 아닌 값으로 설정하면 원격 데이터베이스가 결과에서 참조되는 테이블을 수정하는 경우와 같이 오래된 응답이 생성될 수 있습니다.
STAR_TRANSFORMATION_ENABLED
관련 링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/STAR_TRANSFORMATION_ENABLED.html#GUID-B2E6145D-164A-4453-9839-0F6E6442A922
옵티마이저가 스타 쿼리에 대한 스타 변환 비용을 지불하도록 합니다( if true). 스타 변환은 다양한 팩트 테이블 열의 비트맵 인덱스를 결합합니다.

 

 

원본

Initialization Parameter Description

CURSOR_INVALIDATION Provides the default cursor invalidation level for DDL statements.IMMEDIATE sets the same cursor invalidation behavior for DDL as in releases before Oracle Database 12c Release 2 (12.2). This is the default.
DEFERRED allows an application to take advantage of the reduced cursor invalidation for DDL without making any application changes. Deferred invalidation reduces the number of cursor invalidations and spreads the recompilation workload over time. For this reason, a cursor may run with a suboptimal plan until it is recompiled, and may incur small execution-time overhead.
You can set this parameter at the SYSTEM or SESSION level. See "About the Life Cycle of Shared Cursors".
CURSOR_SHARING Converts literal values in SQL statements to bind variables. Converting the values improves cursor sharing and can affect the execution plans of SQL statements. The optimizer generates the execution plan based on the presence of the bind variables and not the actual literal values.
Set to FORCE to enable the creation of a new cursor when sharing an existing cursor, or when the cursor plan is not optimal. Set to EXACT to allow only statements with identical text to share the same cursor.
DB_FILE_MULTIBLOCK_READ_COUNT Specifies the number of blocks that are read in a single I/O during a full table scan or index fast full scan. The optimizer uses the value of this parameter to calculate the cost of full table scans and index fast full scans. Larger values result in a lower cost for full table scans, which may result in the optimizer choosing a full table scan over an index scan.
The default value of this parameter corresponds to the maximum I/O size that the database can perform efficiently. This value is platform-dependent and is 1 MB for most platforms. Because the parameter is expressed in blocks, it is set to a value equal to the maximum I/O size that can be performed efficiently divided by the standard block size. If the number of sessions is extremely large, then the multiblock read count value decreases to avoid the buffer cache getting flooded with too many table scan buffers.
OPTIMIZER_ADAPTIVE_PLANS Controls adaptive plans. An adaptive plan has alternative choices. The optimizer decides on a plan at run time based on statistics collected as the query executes.
By default, this parameter is true, which means adaptive plans are enabled. Setting to this parameter to false disables the following features:
  • Nested loops and hash join selection
  • Star transformation bitmap pruning
  • Adaptive parallel distribution method
See "About Adaptive Query Plans".
OPTIMIZER_ADAPTIVE_REPORTING_ONLY Controls the reporting mode for automatic reoptimization and adaptive plans (see "Adaptive Query Plans"). By default, reporting mode is off (false), which means that adaptive optimizations are enabled.
If set to true, then adaptive optimizations run in reporting-only mode. In this case, the database gathers information required for an adaptive optimization, but takes no action to change the plan. For example, an adaptive plan always choose the default plan, but the database collects information about which plan the database would use if the parameter were set to false. You can view the report by using DBMS_XPLAN.DISPLAY_CURSOR.
OPTIMIZER_ADAPTIVE_STATISTICS Controls adaptive statistics. The optimizer can use adaptive statistics when query predicates are too complex to rely on base table statistics alone.
By default, OPTIMIZER_ADAPTIVE_STATISTICS is false, which means that the following features are disabled:
  • SQL plan directives
  • Statistics feedback
  • Adaptive dynamic sampling
See "Adaptive Statistics".
OPTIMIZER_MODE Sets the optimizer mode at database instance startup. Possible values are ALL_ROWS, FIRST_ROWS_n, and FIRST_ROWS.
OPTIMIZER_INDEX_CACHING Controls the cost analysis of an index probe with a nested loop. The range of values 0 to 100 indicates percentage of index blocks in the buffer cache, which modifies optimizer assumptions about index caching for nested loops and IN-list iterators. A value of 100 infers that 100% of the index blocks are likely to be found in the buffer cache, so the optimizer adjusts the cost of an index probe or nested loop accordingly. Use caution when setting this parameter because execution plans can change in favor of index caching.
OPTIMIZER_INDEX_COST_ADJ Adjusts the cost of index probes. The range of values is 1 to 10000. The default value is 100, which means that the optimizer evaluates indexes as an access path based on the normal cost model. A value of 10 means that the cost of an index access path is one-tenth the normal cost of an index access path.
OPTIMIZER_INMEMORY_AWARE This parameter enables (TRUE) or disables (FALSE) all Oracle Database In-Memory (Database In-Memory) optimizer features, including the cost model for the IM column store, table expansion, Bloom filters, and so on. Setting the parameter to FALSE causes the optimizer to ignore the INMEMORY property of tables during the optimization of SQL statements.
OPTIMIZER_REAL_TIME_STATISTICS When the OPTIMIZER_REAL_TIME_STATISTICS initialization parameter is set to true, Oracle Database automatically gathers real-time statistics during conventional DML operations. The default setting is false, which means real-time statistics are disabled.
OPTIMIZER_SESSION_TYPE Determines whether the database verifies statements during automatic index verification. The default is NORMAL, which means statements are verified. CRITICAL takes precedence over NORMAL.
By setting the OPTIMIZER_SESSION_TYPE initialization parameter to ADHOC in a session, you can suspend automatic indexing for queries in this session. The automatic indexing process does not identify index candidates, or create and verify indexes. This control may be useful for ad hoc queries or testing new functionality.
OPTIMIZER_USE_INVISIBLE_INDEXES Enables or disables the use of invisible indexes.
QUERY_REWRITE_ENABLED Enables or disables the query rewrite feature of the optimizer.
TRUE, which is the default, enables the optimizer to utilize materialized views to enhance performance. FALSE disables the query rewrite feature of the optimizer and directs the optimizer not to rewrite queries using materialized views even when the estimated query cost of the unoptimized query is lower. FORCE enables the query rewrite feature of the optimizer and directs the optimizer to rewrite queries using materialized views even when the estimated query cost of the unoptimized query is lower.
QUERY_REWRITE_INTEGRITY Determines the degree to which query rewrite is enforced.
By default, the integrity level is set to ENFORCED. In this mode, all constraints must be validated. The database does not use query rewrite transformations that rely on unenforced constraints. Therefore, if you use ENABLE NOVALIDATE RELY, some types of query rewrite might not work.
To enable query rewrite when constraints are in NOVALIDATE mode, the integrity level must be TRUSTED or STALE_TOLERATED. In TRUSTED mode, the optimizer trusts that the relationships declared in dimensions and RELY constraints are correct. In STALE_TOLERATED mode, the optimizer uses materialized views that are valid but contain stale data as well as those that contain fresh data. This mode offers the maximum rewrite capability but creates the risk of generating inaccurate results.
RESULT_CACHE_MODE Controls whether the database uses the SQL query result cache for all queries, or only for the queries that are annotated with the result cache hint. When set to MANUAL (the default), you must use the RESULT_CACHE hint to specify that a specific result is to be stored in the cache. When set to FORCE, the database stores all results in the cache.
When setting this parameter, consider how the result cache handles PL/SQL functions. The database invalidates query results in the result cache using the same mechanism that tracks data dependencies for PL/SQL functions, but otherwise permits caching of queries that contain PL/SQL functions. Because PL/SQL function result cache invalidation does not track all kinds of dependencies (such as on sequences, SYSDATE, SYS_CONTEXT, and package variables), indiscriminate use of the query result cache on queries calling such functions can result in changes to results, that is, incorrect results. Thus, consider correctness and performance when choosing to enable the result cache, especially when setting RESULT_CACHE_MODE to FORCE.
RESULT_CACHE_MAX_SIZE Changes the memory allocated to the result cache. If you set this parameter to 0, then the result cache is disabled. The value of this parameter is rounded to the largest multiple of 32 KB that is not greater than the specified value. If the rounded value is 0, then the feature is disabled.
RESULT_CACHE_MAX_RESULT Specifies the maximum amount of cache memory that any single result can use. The default value is 5%, but you can specify any percentage value between 1 and 100.
RESULT_CACHE_REMOTE_EXPIRATION Specifies the number of minutes for which a result that depends on remote database objects remains valid. The default is 0, which implies that the database should not cache results using remote objects. Setting this parameter to a nonzero value can produce stale answers, such as if a remote database modifies a table that is referenced in a result.
STAR_TRANSFORMATION_ENABLED Enables the optimizer to cost a star transformation for star queries (if true). The star transformation combines the bitmap indexes on the various fact table columns.

 

 

참조 : https://docs.oracle.com/en/database/oracle/oracle-database/19/tgsql/influencing-the-optimizer.html#GUID-125341C0-DBA3-4FAB-B4DB-8857CC36015C

 

SQL Tuning Guide

Optimizer defaults are adequate for most operations, but not all.

docs.oracle.com