3. 设置优化程序级别
可以在实例、会话或者语句级上设置优化程序方式。如前所述,可以通过将初始化参数OPTIMIZER_MODE的值设置为ALL_ROWS、FIRST_ROWS_n或FIRST_ROWS,在实例级上设置优化程序方式。例如,通过金初始化参数文件中增加下面的行实为整个实例设置査询优化的目标:
OPTIMIZER_MODE = ALL_ROWS
将初始化参数OPTIMIZER_MODE设置为ALL_ROWS以确保尽可能得到査询的完整结果集。
还可以通过使用下面的ALTER SESSION语初来为一个单独的会话设置优化程序方式:
ALTER SESSION SET optimizer_mode = first_rows_10;
前面的SQL语句告诉优化程序,对执行的每个SQL语句输出的前10行,要以最佳响应时间作为其决策的依据.
提示 要注意的是,所选择的优化程序方式只应用于直接执行的SQL语句。如果你用一条ALTER SESSION语句更改PL/SQL代码块中的SQL的优化程序方式,则该语句会被忽略。必须使用优化程序提示(hint)对PL/SQL块中的每个SQL语句设置优化程序方式。
如果要了解数据库当前的优化程序方式,可以执行下面的査询:
SELECT name, value FROM v$PARAMETER WHERE name = 'optimizer_mode';
利用优化程序提示(hint),任何一个SQL语句都可以覆盖实例级或会话级的设置,这些设置为优化程序选取最佳的访问方法。通过使用提示,可以覆盖OPTIMIZER_MODE初始化参数的实例范围设置。
4. 设置优化程序级别
可以在实例、会话或者语句级上设置优化程序方式。如前所述,可以通过将初始化参数OPTIMIZER_MODE的值设置为ALL_ROWS、FIRST_ROWS_n或FIRST_ROWS,在实例级上设置优化程序方式。例如,通过金初始化参数文件中增加下面的行实为整个实例设置査询优化的目标:
OPTIMIZER_MODE = ALL_ROWS
将初始化参数OPTIMIZER_MODE设置为ALL_ROWS以确保尽可能得到査询的完整结果集。
还可以通过使用下面的ALTER SESSION语初来为一个单独的会话设置优化程序方式:
ALTER SESSION SET optimizer_mode = first_rows_10;
前面的SQL语句告诉优化程序,对执行的每个SQL语句输出的前10行,要以最佳响应时间作为其决策的依据.
提示 要注意的是,所选择的优化程序方式只应用于直接执行的SQL语句。如果你用一条ALTER SESSION语句更改PL/SQL代码块中的SQL的优化程序方式,则该语句会被忽略。必须使用优化程序提示(hint)对PL/SQL块中的每个SQL语句设置优化程序方式。
如果要了解数据库当前的优化程序方式,可以执行下面的査询:
SELECT name, value FROM v$PARAMETER WHERE name = 'optimizer_mode';
利用优化程序提示(hint),任何一个SQL语句都可以覆盖实例级或会话级的设置,这些设置为优化程序选取最佳的访问方法。通过使用提示,可以覆盖OPTIMIZER_MODE初始化参数的实例范围设置。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




