Oracle 参数 HASH_AREA_SIZE 官方解释,作用,如何配置最优化建议
本站中文解释
HASH_AREA_SIZE参数用于指定链接哈希排序操作所需的哈希表内存大小,以字节为单位。它是一个折衷参数,可以根据链接操作所需的特定大小以及目标内存空间设置。HASH_AREA_SIZE参数使指定的链接操作有更多的内存空间,以改善执行性能,但如果它设置的太大,就会占用太多内存,降低了性能。
正确设置HASH_AREA_SIZE参数的步骤如下:
1. 了解目标系统的内存布局,确定为HASH_AREA_SIZE参数可用的内存大小;
2. 确定执行的查询将使用链接操作,并根据预期结果集和数据大小确定要分配的内存;
3. 为HASH_AREA_SZE设一个期望值,但小于第2步确定的内存数,以便有余量;
4. 如果指定参数小于确定的内存数,则降低相应的HASH_AREA_SIZE参数值;
5. 如果指定参数大于确定的内存数,则增加相应的HASH_AREA_SIZE参数值;
6. 重复以上5步,直到查询链接操作能够良好地运行,保持性能最大化。
官方英文解释
HASH_AREA_SIZE
specifies the maximum amount of memory, in bytes, to be used for hash joins.
Property | Description |
---|---|
Parameter type |
Integer |
Default value |
Derived: 2 * |
Modifiable |
|
Modifiable in a PDB |
No |
Range of values |
0 to operating system-dependent |
Basic |
No |
Note:
Oracle does not recommend using the HASH_AREA_SIZE
parameter unless the instance is configured with the shared server option. Oracle recommends that you enable automatic sizing of SQL working areas by setting PGA_AGGREGATE_TARGET
instead. HASH_AREA_SIZE
is retained for backward compatibility.
HASH_AREA_SIZE
is relevant to parallel execution operations and to the query portion of DML or DDL statements.
See Also:
-
Oracle Database
Concepts for information on hash joins in general