在AnySQL.net中搜索标签(Tags) 'Partition' 的结果:

Oracle CBO认为Cost为0

    在一个分区表上去执行一个SQL时(在Where条件中用了分区列等于的条件, 分区列为主键索引的最后一列), 发现用错了执行计划, Oracle居然认为某个SQL的执行计划的成本为0, 实际上是肯定没有本为0的执行计划的, 因此是明显的不合理的现象. SQLPLAN                                          COST CARD KBYTE PS PE ------------------------------------------------ ---- ---- ----- -- --   0     SELECT STATEMENT Optimizer=RULE             0    1     0   1   0   SORT (GROUP BY)                                1     0   2   1     PARTITION RANGE (SINGLE)                0    1     0 3  3   3   2      ...

你用过Oracle的Global Partition Index吗?

    Oracle的分区表也不是十分好用, 当分区的数目比较多时, 很可能让一些不能进行Partition Prune的SQL拥有很高的逻辑读(Consistent Gets), 解决的办法是将一些索引建成全局索引. 现在我们来看一下相反的例子, Oracle中的表是不分区的, 而且访问量最多的SQL是根据一个选择性很好的索引去走的, 每次执行的逻辑读也就只有4-6个了, 因为访问量很高, 如果能降底一个逻辑读的话, 也可能降底整个系统5%-10%的逻辑读, 我们应当从哪儿来考虑呢? 索引的层次(Level)绝对是一个值得研究的角度. 事实上如果我们能让索引的层次(Level)高度降一级, 就可以降低一个逻辑读了, 通过常有以下的方法可用: 1, Rebuild索引. 2, 删除一部份数据后重建索引. 3, 将索引建到一个较大Block Size的表空间中. 4, 建成Global Partitioned索引.     什么是Global Partitioned索引? 指的是在非分区表上建的分区索引, 或者是分区表上但分区方法和表不相同的索引. 通过分区技术, 我们可以将一个大的索引划分为小片, 从而降底索引的层次(Level). 下面来看一下如何在非分区表上建分区索引:...

根据标记(Tags)来查找:

分类 | Categories

本站基于MT-3.36免费版, 和Fenng设计的模板.
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql