【问题标题】:SQL tuning in Oracle [closed]Oracle中的SQL调优[关闭]
【发布时间】:2018-03-07 17:10:57
【问题描述】:

是否有任何文章/链接可供我找到 SQL 调优 (Oracle) 的示例。如果用例子来解释就好了。我需要现有查询、统计信息、计划,然后是建议的查询/推荐和新计划。

我在 google 上找到了几个非常好的链接:

  1. http://www.dba-oracle.com/art_sql_tune.htm
  2. http://www.orafaq.com/tuningguide/

但是,我正在寻找具有上述细节的实时示例,这些文章中缺少这些细节。

我希望我没有要求太多。 :-)

【问题讨论】:

  • 实时示例不会很有帮助,因为它们非常依赖数据和查询。您需要调整您可以找到的示例,并查看如何将这些技术应用于您的情况。首先获取计划和时间安排,然后寻找瓶颈。您可以在此处和 asktom.oracle.com 上找到许多不同的示例,但它们只能为您指出数据库需要考虑的事项。

标签: sql oracle optimization


【解决方案1】:

有几个捷径 - 为了获得最佳效果:

  1. 购买一份“基于成本的 甲骨文基础”,乔纳森 刘易斯
  2. 设置本地 Oracle 数据库 您可以完全控制
  3. 研究他的例子

这本书解释了优化器是如何做出决定的。

我不确定许可对个人使用的影响,但我也了解如何使用 dbms_sqltune 包 - 如果它可以通过正常的优化器路径找到改进的计划,它将生成一个显示差异的报告。通过查看此信息,您可以学到很多东西。

【讨论】:

  • +1 关于没有快捷方式的评论,人们在优化 Oracle 应用程序方面从事职业。
【解决方案2】:

编写更好的 SQL: O'Reilly 的 Dan Tow 的“Tuning SQL”是一本非常好的跨平台 SQL 调优指南。这不是一个简短的阅读,但它确实涵盖了一些非常多毛的示例,并向您展示了如何调整您的查询。 Oracle 中没有 FAST=TRUE 选项;如果有,它将被隐藏,您将无法更改它。他的网站是http://singingsql.com

按响应时间调整: 在过去 20 年左右的时间里,Cary Millsap 专注于使用 Oracle 等待接口和排队理论来调整 SQL 和系统;他现在的公司 (http://method-r.com) 和他以前的公司 (http://hotsos.com) 都有很多有用的资源。

通过优化器统计进行调整: http://centrexcc.com 的 Wolfgang Breitling 在通过基数反馈演示调优方面做了一些出色的工作,以证明如果 SQL 良好且负载过多,则问题可能是您在向 Oracle 撒谎(或 Oracle 做出不安全的推断)数据的性质。然后他会告诉你如何解决它。

所有这些都是有价值的。所有这些都是不完整的。

我赞同乔纳森·刘易斯的优秀作品的推荐;他在http://jonathanlewis.wordpress.com 有一个相当不错的调优博客

【讨论】:

    【解决方案3】:

    您也可以尝试使用 Oracle SQL 调优工具,位于此处https://sql-tuning.com

    【讨论】:

    • 这里不鼓励仅链接答案。此外,第一个示例建议是“代替 COUNT(*) 使用 COUNT(1)”,这是 Oracle 众所周知的性能调优神话。
    【解决方案4】:

    http://philip.greenspun.com/sql/tuning.html

    Sql 调优并不容易,因为它取决于很多因素。没有通用的方法。有时,只需添加索引或提示,有时需要更改结构。

    【讨论】:

    • 完全同意..这就是为什么我需要经过尝试和测试的示例(最佳实践)..!!
    • 没有“最佳实践”和示例之类的东西。 OLTP 数据库有一些通用规则。 1) 读取小数据 2) 不合并大数据范围 3) 不更新索引列中的值 4) 不要在小表上创建索引 5) 聚合不好 6) 大范围数据排序不好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多