如何更改 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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-10 02:55:52  来源:igfitidea点击:

How to change OPTIMIZER_MODE setting in oracle?

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;
/