木匠的微型博客 Charlie Twitter

    follow me on Twitter

    Wednesday, January 07, 2009

    cross rows comparing行间数值比较

    回应eagle的一篇帖子,介绍一下多种方法做行间数值比较.

    方法
    --------
    1. Hash Join
    eagle’s home http://www.dbafan.com/blog/?p=176

    2. Lead()/Lag() Analytic function

    3. SQL Model

    结果
    -------
    Hash Join表连接是一个好的方法, Lead() 分析函数效果更佳, 更短时间, 使用前者八分之一Latches锁,1/4逻辑读.
    SQL Model可以工作, 但是数据量一大,效果就很差,惨不忍睹, :)
    SQL Model 需要更多的 PGA内存和临时表空间来存储Model单元和排序.
    减少Measure部分的列数有一定帮助, 需要进一步学习和调整. SQL Model的效率理应匹配Lead() 分析函数.

    您有更好的手段来调优 SQL Model 吗? 请发表高见.

    详细性能测试步骤和代码

    No comments: