到了10g的时代,cardinality feedback这个词正在变得越来越流行。我想,开始导致这个词流行的或许不是来自Oracle官方的推广,而是来自Wolfgang Breitling在Hotsos Symposium 2006上的一个演讲。
到了11g,Oracle有个new feature就叫做cardinality feedback…
|
||||||
|
到了10g的时代,cardinality feedback这个词正在变得越来越流行。我想,开始导致这个词流行的或许不是来自Oracle官方的推广,而是来自Wolfgang Breitling在Hotsos Symposium 2006上的一个演讲。 direct read是直接把数据块读到PGA的一种操作,在并行查询中这是唯一的模式。这明显地区别于非并行查询把数据块读到SGA的做法。读到SGA的目的主要是为了共享,这特别适用于OLTP场合。不过,与此同时,访问SGA会引入更多的latch等待,例如cache buffer chains, cache buffer lru等等。 在非并行查询中也可以使用direct read,可以通过一个隐含参数_serial_direct_read进行设置。 值得注意,_serial_direct_read对解析过程起作用,这意味着为了使_serial_direct_read对当前运行中的SQL起作用,我们必须先flush当前的shared_pool。 11g中,Oracle有了一个自适应的算法决定是否对serial execution启用direct read。不过,这是在运行时才决定的。它取决于多个统计信息,例如当前buffer cache的大小,_small_table_threshold的大小,当前dirty blocks还占的比例等等。因此,即使在11g中_serial_direct_read的值为false,serial direct read也可能起作用。这个算法其实就叫做Adaptive Direct Read……. 在10G, Oracle已经有了Database Resource Manager,在数据仓库中,有两个系统资源非常重要,它们可以通过DBRM进行控制,它们就是Active Sessions和DoP(Degree of Parallelism)。一般而言,不同的工作负载会有一个最优的Active Sessions和DoP。甚至于有时必须对工作负载再进行细分,分别应用不同的策略(active sessions + DoP)。这有时是一个烦琐的调优过程。 在即将到来的11G中,有两个新的特性,Auto DoP和Statement Queuing机制。相信对上面的DBRM会带来一定的冲击。 “Storage Index”,对Oracle中已有的Index大家耳熟能详,B-Tree Index, Bitmap Index。这些都是基于行的,有没基于更大的存贮单元的呢?例如1M的存贮区域?Storage Index来了,这以于Cluster的列而说,pruning功能会使一个查询提高成千上万倍。这可能又是一个后来者居上的特性。 “Hybrid Columnar Compression”, 不甘落后的,又一个Oracle新引入的技术。对于数据仓库查询这无疑是天大的福音。 还有很多很多…… 就让我们一起疯狂吧…… |
||||||
|
Copyright © 2010 OS与Oracle - All Rights Reserved |
||||||
最近评论