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 |
|
Default value |
|
Modifiable |
|
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