如何更改 oracle 中的 OPTIMIZER_MODE 设置?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4264942/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to change OPTIMIZER_MODE setting in oracle?
提问by anand
How to change OPTIMIZER_MODE setting in oracle?
如何更改 oracle 中的 OPTIMIZER_MODE 设置?
回答by Sankar Ganesh
You can change OPTIMIZER_MODE, with alter command as shown below,
您可以使用如下所示的alter命令更改OPTIMIZER_MODE,
alter session set OPTIMIZER_MODE = RULE;
alter session set OPTIMIZER_MODE = choose;
回答by demas
ALTER SESSION SET OPTIMIZER_MODE = RULE;
or if you need to make changes for all system:
或者如果您需要对所有系统进行更改:
ALTER SYSTEN SET OPTIMIZER_MODE = RULE SCOPE=SPFILE;
Use
用
SELECT VALUE FROM v$parameter WHERE NAME = 'optimizer_mode'
to check the result.
检查结果。
回答by Nicolas de Fontenay
If your users have a pattern in their username, you can do something like this:
如果您的用户的用户名中有模式,您可以执行以下操作:
create or replace trigger set_optimizer_mode
after logon
on database
begin
if user like 'WHS_%' then
execute immediate 'alter session set optimizer_mode=all_rows';
end if;
end;
/