首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

跨分区的local索引的扫描是怎样的解决方案

2012-01-06 
跨分区的local索引的扫描是怎样的表t的分区是按列day_id的日期的每一天分区的,(如20091201、20091202、每天

跨分区的local索引的扫描是怎样的

表t的分区是按列day_id的日期的每一天分区的,
(如20091201、20091202、每天一个分区,每个分区中有两百万条数据,每个月有5000万条数据),
表t在code字段上建有索引,是local索引,create index idx on t(code) local


 sql: select *from
  t
  where
  t.day_id between 20100101 and 20100131 
  and t.code='xxxx';
问题:如果是全局索引的话 ,是从根节点开始扫描,索引有几层就扫描几次,就到达叶子节点。
  那么像上面这句SQL的话,local索引的扫描是怎样的 呢??

[解决办法]
看看执行计划。
[解决办法]
分区索引是一个个独立的索引
使用分区查询的时候,比如你上面的语句,会根据day_id判断需要哪几个分区,也就是说需要哪几个索引,再逐个索引扫描。
[解决办法]
个人理解: 先分区排除,然后分别扫描对应的分区索引,每个分区索引按一个全局索引的方式来扫描。
[解决办法]

探讨

个人理解: 先分区排除,然后分别扫描对应的分区索引,每个分区索引按一个全局索引的方式来扫描。

[解决办法]
先分区排除,找到对应分区,再执行分区索引

热点排行
Bad Request.