返回顶部
首页 > 资讯 > 数据库 >Oracle如何使用Optimizer_mode参数来控制优化器
  • 853
分享到

Oracle如何使用Optimizer_mode参数来控制优化器

2024-04-02 19:04:59 853人浏览 薄情痞子
摘要

这篇文章主要介绍了oracle如何使用Optimizer_mode参数来控制优化器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Oracle

这篇文章主要介绍了oracle如何使用Optimizer_mode参数来控制优化器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Oracle使用Optimizer_mode参数来控制优化器的偏好,9i常用的几个参数有:first_rows,all_rows,first_rows_N,rule

,choose等。而10g少了rule和choose.oracle 在执行sql语句时,有两种优化方法:即基于规则的RBO和基于代价的CBO。 在SQL执行的时候,到底采用何种优化方法,就由Oracle参数 optimizer_mode 来决定。

Rule Based Optimizer(RBO)基于规则
Cost Based Optimizer(CBO)基于成本,或者讲统计信息

SQL> show parameter optimizer_mode;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
optimizer_mode                       string      ALL_ROWS


oracle10g开始默认是all_rows


ALL_ROWS不管是不是有统计信息,全部采用基于成本的优化方法,返回最大数的量数据

FIRST_ROWS_n不管是不是有统计信息,全部采用基于成本的优化方法并以最快的速度,返回前N行记录

FIRST_ROWS使用成本和试探法相结合的方法,查找一种可以最快返回前面少数行的方法

第一个是返回所有行的最小代价,第二个是返回前N行的最小代价,最后一个是返回前面的少量行的最好计划

修改全局 
alter system set optimizer_mode=all_rows;

修改当前session

alter session set optimizer_mode=all_rows;

几个参数的具体解释:

optimizer_mode =choose
这个是Oracle的默认值。采用这个值时,Oracle即可以采用基于规则RBO,也可以采用基于代价的CBO,到底使用那个值,取决于当前SQL的被访问的表中是不是有可以使用的统计信息。如果有多个被访问的表,其中有一个或多个有统计信息,那么Oralce会对没有统计信息的表进行采样统计(即不全部采样),统计完成后,使用基于代价的优化方法CBO。如果所有被访问的表都没有统计信息,Oracle就会采用基于规则的优化方法RBO。
 
Optimizer_mode=First_rows
在oracle 9i之后这一选项已经过时,出于向后兼容的目的保留了这一选项,该选项的作用在于寻找能够在最短的时间内返回结果集的第一行的执行计划。这一规则倾向于促使优化器使用索引访问路径,偶尔会出现非常不恰当的访问路径。

设置为这种CBO模式以后,SQL语句返回结果的速度会尽可能的快,而不管系统全部的查询是否会耗时较长或者耗系统资源过多。由于利用索引会使查询速度加快,所以 first_rows 优化模式会在全表扫描上进行索引扫描。这种优化模式一般适合于一些OLTP系统,满足用户能够在较短时间内看到较小查询结果集的要求。

Optimizer_mode=all_rows
优化器将寻找能够在最短的时间内完成语句的执行计划。
设置为这种CBO模式以后,将保证消耗的所有计算资源最小,尽管有时查询结束以后没有结果返回。all_rows 的优化模式更倾向于全表扫描,而不是全索引扫描和利用索引排序,因此这种优化模式适合于数据查看实时性不是那么强的数据仓库、决策支持系统和面向批处理的数据库(batch-oriented databases)等。

Optimizer_mode=first_rows_N
N的值可以为1,10,100,1000,优化器首先通过彻底分析第一个连接顺序来估计返回行的总数目。这样就可以知道查询可能获得的整个数据集的片段,并重新启动整个优化过程,其目标在于找到能够以最小的资源消耗返回整个数据片段的执行计划。


Oracle 9i 对一些预期返回结果集的数据量小的SQL语句优化模式进行了加强,增加了四个参数值:first_rows_1、first_rows_10、 first_rows_100、first_rows_1000。CBO通过first_rows_n 中的 n 值,决定了返回结果集数量的基数,我们可能仅仅需要查询结果集中的一部分,CBO就根据这样的 n 值来决定是否使用索引扫描。

optimizer_mode = rule
基于规则的优化器模式,RBO,是早期Oracle版本使用过的一种优化模式。由于 RBO不支持自1994年Oracle版本的新特性,如 bitmap indexes,table partitions,function-based indexes等,所以在以后Oracle版本中已经不再更新RBO,并且也不推荐用户使用RBO这种优化模式了。

感谢你能够认真阅读完这篇文章,希望小编分享的“Oracle如何使用Optimizer_mode参数来控制优化器”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle如何使用Optimizer_mode参数来控制优化器

本文链接: https://lsjlt.com/news/69796.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle如何使用Optimizer_mode参数来控制优化器
    这篇文章主要介绍了Oracle如何使用Optimizer_mode参数来控制优化器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Oracle...
    99+
    2024-04-02
  • 如何使用php函数来优化缓存机制?
    引言:在开发网站时,为了提高性能和访问速度,缓存机制是非常重要的。PHP内置了一些函数和扩展来帮助我们实现缓存功能。本文将介绍如何使用PHP函数来优化缓存机制,并提供具体的代码示例。一、了解缓存机制在开始优化缓存机制之前,首先需要了解缓存的...
    99+
    2023-10-21
    缓存 优化 PHP函数
  • 如何通过php函数来优化用户认证和权限控制?
    在开发网站或应用程序时,用户认证和权限控制是非常重要的一环,它们确保只有授权的用户可以访问特定的功能和数据。PHP提供了一系列函数和技术来实现用户认证和权限控制,本文将介绍如何通过PHP函数来优化这些功能,并提供具体的代码示例。用户认证用户...
    99+
    2023-10-21
    权限控制 用户认证 PHP函数优化
  • 如何使用 PHP 容器来优化数组加载?
    在 PHP 中,数组是一种非常常见的数据结构,它可以用来存储多个值,并且可以根据键名进行访问。然而,当数组中的元素数量很大时,数组的加载和遍历会变得非常耗时。为了优化数组的加载和遍历效率,我们可以使用 PHP 容器。本文将介绍如何使用 P...
    99+
    2023-08-22
    数组 load 容器
  • 如何在PostgreSQL中调整参数来优化性能
    要在PostgreSQL中调整参数来优化性能,可以尝试以下几种方法: 使用pgTune工具来生成一个优化的postgresql.c...
    99+
    2024-04-09
    PostgreSQL
  • ASP中如何使用数组来优化代码?
    在ASP网页应用程序开发中,使用数组是一种非常有效的方法来优化代码,提高网站的性能。本文将介绍ASP中如何使用数组来优化代码,以及演示代码示例。 一、什么是数组? 数组是一种数据类型,它可以存储多个相关变量的值。在ASP中,数组可以存储各种...
    99+
    2023-09-30
    数组 linux api
  • 怎么使用springboot获取控制器参数
    小编给大家分享一下怎么使用springboot获取控制器参数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如题,这里介绍springboot 获取控制器参数有四种...
    99+
    2023-06-22
  • PHP8如何使用Named Arguments优化函数参数传递?
    PHP8如何使用Named Arguments优化函数参数传递?摘要:PHP8引入了Named Arguments(命名参数)的特性,可以通过指定参数名称来传递函数参数,从而提高代码的可读性和可维护性。本文将介绍Named Argument...
    99+
    2023-10-22
    优化 PHP named arguments
  • 如何使用php函数来优化跨域请求和安全限制?
    在Web开发中,跨域请求和安全限制是常见的问题。跨域请求指的是在一个域名下的页面访问另一个域名下的资源。由于浏览器的安全策略,普通的跨域请求是被禁止的。安全限制则是指防止恶意攻击和保护用户隐私的措施。PHP提供了一些函数和方法来优化这些问题...
    99+
    2023-10-21
    优化 跨域请求 安全限制
  • 如何使用php函数来优化大数据处理?
    在当今大数据时代,处理海量数据已成为一项重要任务。PHP 是一种强大的服务器端编程语言,它提供了许多用于数据处理的函数和工具。本文将介绍一些优化大数据处理的方法,并提供具体的 PHP 代码示例。使用合适的数据结构:在处理大数据时,选择合适的...
    99+
    2023-10-21
    优化 大数据处理 PHP函数
  • 如何优化 C++ 函数中默认参数和可变参数的使用
    优化 c++++ 默认和可变参数函数:默认参数:允许函数使用默认值,减少冗余。将默认参数放在最后以提高可读性。使用 constexpr 默认参数以减少开销。使用结构化绑定以提高复杂默认参...
    99+
    2024-04-20
    默认参数 可变参数 c++ 函数 c++
  • 如何使用php函数来压缩和优化代码?
    在开发Web应用程序时,代码的大小和效率是非常重要的。代码的大小直接影响文件的加载速度,而代码的效率则直接影响应用程序的响应时间。为了提高应用程序的性能,我们经常需要对代码进行压缩和优化。在PHP中,有一些内置的函数和方法可以帮助我们压缩和...
    99+
    2023-10-21
    性能优化 压缩代码:代码压缩 代码压缩工具 代码压缩技术 优化代码:代码优化
  • Oracle如何使用备份控制文件
    这篇文章主要为大家展示了“Oracle如何使用备份控制文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle如何使用备份控制文件”这篇文章吧。 ...
    99+
    2024-04-02
  • Exchange2010中如何使用RBAC来控制用户权限
    这篇文章主要介绍Exchange2010中如何使用RBAC来控制用户权限,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、RBAC对于不同类型的用户有不同的作用。在2010的Exchange系统中,将会全部使用基于角...
    99+
    2023-06-17
  • 如何使用Python IDE来优化Laravel开发?
    Laravel是一个流行的PHP框架,被广泛应用于Web应用程序的开发。Python IDE是一种集成开发环境,可以让开发人员更加高效地编写代码。本文将介绍如何使用Python IDE来优化Laravel开发。 1.安装Python ID...
    99+
    2023-07-27
    ide laravel npm
  • 如何使用 PHP、NumPy 和 Apache 来优化 Load?
    当今互联网时代,网站的流量和访问量越来越大,而网站的性能优化显得尤为重要。其中一个关键性能指标是 Load,即网站的负载能力。在高访问量的情况下,如果网站的 Load 不能得到有效的优化,就会导致网站运行缓慢,访问速度变慢,进而影响用户体验...
    99+
    2023-11-06
    numy apache load
  • 如何使用php函数来优化数据库连接速度?
    使用持久连接在PHP中,我们可以通过使用持久连接来提高数据库连接速度。持久连接是一种在脚本执行期间保持数据库连接的方式,避免了每次执行查询都重新建立连接的开销。使用持久连接需要使用mysqli或PDO扩展,并在连接数据库时传递MYSQLI_...
    99+
    2023-10-21
    缓存数据库连接 (Cache) 批量操作 (Batch) 预编译查询语句 (Prepared statement)
  • 如何使用Flex ComboBox控件优化网站
    这篇文章主要为大家展示了“如何使用Flex ComboBox控件优化网站”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Flex ComboBox控件优化网站”这篇文章吧。Flex Com...
    99+
    2023-06-17
  • 如何使用php函数来优化日志记录性能?
    在开发Web应用程序时,日志记录是非常重要的一项功能。通过记录系统运行时的日志信息,我们可以更好地了解应用程序的运行状态,诊断问题,并进行性能优化。然而,不恰当的日志记录方式可能会带来性能瓶颈,影响应用程序的执行效率。本文将介绍如何使用PH...
    99+
    2023-10-21
    优化 日志记录 PHP函数
  • 如何使用php函数来优化文件操作性能?
    在开发Web应用程序时,经常需要处理文件操作,如读取、写入、复制、删除等。然而,不正确的文件操作可能会导致性能问题,特别是在处理大文件或者大量文件时。为了提高应用程序的效率,我们可以使用一些PHP函数来优化文件操作性能。本文将介绍一些常用的...
    99+
    2023-10-21
    PHP性能优化 PHP函数优化 文件操作优化
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作