AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 18831
In Process
Darryl Braaten
Darryl Braaten
Asked: 2009-06-04 07:25:04 +0800 CST2009-06-04 07:25:04 +0800 CST 2009-06-04 07:25:04 +0800 CST

Oracle 调优优化器索引成本调整和优化器索引缓存

  • 772

为 Oracle 设置优化器索引成本调整参数的正确方法是什么。作为一名开发人员,我观察到随着此参数的降低,性能得到了巨大的提升。常见查询从 2 秒减少到 200 毫秒。网上有很多警告说降低这个值会导致数据库出现严重问题,但没有详细说明什么会开始出错。

我目前只看到一个优点,大大提高了应用程序性能,没有缺点。我需要更好地了解调整这些参数可能产生的负面影响。

oracle performance-tuning
  • 3 3 个回答
  • 5147 Views

3 个回答

  • Voted
  1. Ofir Manor
    2009-06-06T13:38:30+08:002009-06-06T13:38:30+08:00

    不建议更改此参数的原因是它们对优化器具有 db 范围的影响 - 因此,当您更改它以调整特定查询时,它可能会对许多其他查询产生一些影响。因此,在没有仔细测试整个应用程序的情况下在生产环境中更改它是危险的。

    然而:

    1. 在开发/测试环境中设置它,并在生产中保持相同的值可能是可以接受的(过去是 OLTP 系统中的常见做法)。但是,您能确定您的应用程序将在专用数据库中运行吗?并且永远不会使用一组默认参数合并到另一个数据库中?
    2. 这些参数有帮助,因为 Oracle 使用了一些关于 I/O 与 CPU 的相对成本的启发式方法,而在您的情况下,启发式方法还不够好,因此 Oracle 选择了次优的执行计划。修复启发式的推荐方法是让 Oracle 为您的 db 机器收集系统统计信息- CPU 有多快,在常规系统负载期间从 I/O 系统获取单块/多块需要多长时间等。请参阅 Oracle文档。

    如果您想同时使用系统统计信息和优化器参数,请在 google 上搜索,Jonathan Lewis 写道(抱歉,该网站不允许我发布多个链接)

    我希望这会有所帮助

    • 1
  2. Stefano Loddo
    2009-06-05T03:46:30+08:002009-06-05T03:46:30+08:00

    不应在生产环境中更改该参数。主要用途是强制更改计划,以验证不同执行计划的性能。基本上,您建议优化器使用数据库中的所有索引比使用其他访问路径更便宜。这对于某些 sql 可能是正确的,而对于其他的可能是错误的。

    一旦你有一个好的性能计划,你应该理解为什么优化器不使用它并尝试修复(即没有新的/准确的静态数据可用 -> 收集新的、更准确的统计数据)。

    希望这会有所帮助,斯特凡诺

    • 0
  3. Bob
    2010-05-14T04:42:59+08:002010-05-14T04:42:59+08:00

    这两个参数的默认值对于最常见的数据库类型 OLTP 系统来说非常糟糕。它们会导致更多的全表扫描和错误查询。通常,您希望在上线之前设置这些参数。您在测试阶段执行此操作。

    如果您在上线后更改它们,那么您可能会更改已调整为错误设置的其他查询。听起来您对数据库调优不太了解,因为您提到了响应时间而不是查询计划。您不应该触摸这些参数。

    大多数 DBA 不了解修复和设计之间的概念差异。上线后,您正在修复,这时您需要小心更改这些参数。在您入住之前,您正处于设计和开发阶段。那就是当你像这样调整参数的时候。

    顺便说一句,从这些参数开始的好地方(在你去生产之前注意,只有你知道你在做什么!)

    optimizer_index_cost_adj=10 优化器缓存=90

    这适用于 OLTP。对于批处理,您要开始的设置非常不同。我对这些进行了一些修改,但这些设置在 OLTP 上 99% 的时间都为我提供了最佳的整体结果。但是,在我们投入生产后,我不会碰它们。如果它们不好,我会让它们变得不好并调整查询。

    • 0

相关问题

  • SQL Server 到 Oracle 数据同步的最佳实践

  • 一般定制 Oracle E-Business Suite 和 Oracle 应用程序的最佳实践 [关闭]

  • Oracle 数据库的隐藏特性

  • 每个 Oracle DBA 都应该知道的事情

  • 如何最好地优化 Oracle 数据库的写入?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve