|
|
最初由 胡一刀 发布
[B]
不太理解,既然是数据字典,就应该是相对静态,
而且经常用到的,为什么反而不要索引,要求全表扫描呢?
是不是把整个表都keep在内存了?
这个表看样子不小,这样好吗?
哪位介绍一下 [/B]
因为Oracle在做parallel query时会用CBO来生成execution plan.
根据你设置的并行度CBO认为用full table scan成本更底的话, 就会用full table scan这种access path.
具体到你所述:
如果表PUB_ITEM_MASTER A上,如果WHERE中的以下
A.ENTERPRISECODE = 'shjt'条件所涉及的字段上没有索引, 当然会对此表作full table scan.
如果有索引,但表很小的话,CBO得出full table scan的成本低于index unique scan或index full scan的话也会使用full table scan(这主要和db_file_multiblock_read_count参数,及select的列不在索引中有关).
如果表很大的话,CBO使用full table scan只能说明CBO认为使用此索引的selectivity很低.
 |
|