木匠的微型博客 Charlie Twitter

    follow me on Twitter

    Thursday, February 19, 2009

    读书笔记Oracle Database 10g Performance Tuning Tips & Techniques

    自讽一下: 昨晚LD限制我的上网时间,强行断网,关电脑,拔电源.我一着急,把这篇中文题目发到我的英文博客上了. 再来一遍.

    截至今晚,又读完了下面三章
    8: Query Tuning: Developer and Beginner DBA
    9: Table Joins and Other Advanced Tuning (Advanced DBA and Developer)
    10:Using PL/SQL to Enhance Performance (Developer and DBA)
    和11章 Tuning RAC and Using Parallel Features的一半.

    鄙人(IMHO)猜测这本书就是把多个人(大部分是TUSC员工)的文章,简单拼凑在一起,凑和着出版了一本书,不建议读者购买.

    不过, 第9章介绍了3个新颖的技术.

    1) Block Dump
    教会我开始使用Block Dump, 读trace文件里面的一些基本内容, 比如ITL锁, 列的数据类型和数据内容.
    下一篇文章,关于Fetch Across Commit最差实践,会引用一些Block Dump作为例证.

    2) Tuning Using Simple Mathematical Techniques
    原以为小学数学知识足以支持数据库管理和开发. 这下竟然用到了初中的数学知识.
    这部分知识讲了如何用二元一次线性方程(Simple Linear Equation),和二元二次方程(Quadratic)预测SQL的性能, 真新鲜,找机会试试.

    3) Join Tuning: Relational vs. Object-Relational Performance
    三种表连接(Nested-loop, Sort-Merge, Hash join), 把对象表作为物理存储结构的性能竟然远远好过普通表(heap table), 难以置信. 我认为写的性能比较差, 应该不适合OLTP系统, 找时间Benchmark一下.
    记得Tom的书里面不推荐Object-Relational表存储, 把Object-Relational结构拿来编程还行.

    Richard J. Niemiec 老兄讲了, 读完并理解了第9章,您就是高级数据库调优专家,并且站到了Richard J. Niemiec的高度,探索到无尽的喜悦.

    "If you’ve read and understood this entire chapter, you’re probably among the top-tuning
    professionals and you will see the heights and joys that I’ve seen with tuning Oracle."

    参考我14年的数据库经验(4年学习,10年荒废),鄙人木匠(IMHO)以为, 万里长征才刚刚开始, 读完并理解了第9章, 我才发现好多东西他都没有讲到,或者涉水太浅,要走的路还长着哩.


    BC Ferries 的轮渡缓缓驶离温哥华码头.

    No comments: