Oracle 参数 CURSOR_SHARING 官方解释,作用,如何配置最优化建议

本站中文解释

CURSOR_SHARING参数用于定义游标(Cursors)共享策略。

该参数可以设置为以下三种值:

(1)exact:指示仅使用完全匹配的语句共享游标,即SQL语句(含注释)必须完全一致,方能共享游标。

(2)similar:指示使用简单替换的语句共享游标,SQL语句中变量和字符串比较可以使用简单的模式替换共享游标。

(3)force:指示强制SQL语句共享游标,无论SQL语句是否完全一致都会共享游标。

正确设置:

CURSOR_SHARING=force

配置CURSOR_SHARING参数为collsete后,会有一个报警出现,通常会将其修改为force。可以使用如下步骤来正确设置CURSOR_SHARING参数:

1. 检查当前系统的CURSOR_SHARING参数的值是什么,可以用如下SQL查看:SELECT value FROM v$paramater WHERE name = ‘cursor_sharing’;

2. 使用如下ALTER SYSTEM命令行来修改CURSOR_SHARING参数的值:ALTER SYSTEM SET cursor_sharing=FORCE SCOPE=BOTH

3. 确认修改的参数的值是FORCE,可以用如下SQL查看:SELECT value FROM v$paramater WHERE name = ‘cursor_sharing’;

4. 用如下SQL查看有多少任务等待锁:SELECT * FROM v$lock;

5. 如果有多个任务等待锁,可以用如下SQL来查看哪些任务正在共享游标:SELECT * FROM v$cursor_sharing;

设置CURSOR_SHARING参数前应该先检查当前Paramter值是否符合实际需求,如果需要修改,应使用ALTER SYSTEM命令,将其修改为合适的值。

官方英文解释

CURSOR_SHARING determines what kind of SQL statements can share the same cursors.

Property Description

Parameter type

String

Syntax

CURSOR_SHARING = { EXACT | FORCE }

Default value

EXACT

Modifiable

ALTER SESSION, ALTER SYSTEM

Modifiable in a PDB

Yes

Basic

No

Values

  • FORCE

    Allows the creation of a new cursor if sharing an existing cursor, or if the cursor plan is not optimal.

  • EXACT

    Only allows statements with identical text to share the same cursor.

See Also:

Oracle Database SQL Tuning
Guide
before setting the CURSOR_SHARING parameter to learn about the performance implications


数据运维技术 » Oracle 参数 CURSOR_SHARING 官方解释,作用,如何配置最优化建议