当前位置导航:炫浪网>>网络学院>>编程开发>>Oracle教程

建立了分区表后如果访问表中数据

  Quote:

  1. 对一张表建立了分区后,在访问表中数据时是如何操作的。

  answer:

  普通表呢像一个小学生用的新华字典,分区表呢像一套博士们辞海,在同一个漂亮的盒子里面(表名)有若干本辞海分册(每一册就是一个分区了)。
  
  如果说检索一张普通表就像查新化字典,检索分区表就像查辞海了。具体而言呢,又这么几种方式:
  
  1). 因为你知道你查的内容只会出现在某些分册里面,于是你很快的从辞海盒子里面取出你要的那个册子,不加思索的翻到索引页,根据索引页的指示,你飞快的翻到你的目标页面。取一本本册子呢就叫partition range [inlist] iterator,找索引页当然就是index range scan。如果你不找索引页,准备翻完整本书的找,那就是full table scan了。如果你只找一本册子的,那partition range iterator也就不必了。
  
  2). 哦,你不知道你要查的内容在那本册子里? 那你只好辛苦一点,翻阅所有册子了。这时,你做的动作就叫partition range all.  而对于每本册子言,也许你会找索引页(index scan),也许你想翻遍全册(full table scan)。
  
  3). 也许你发现一册册的打开索引页找内容太繁重了,你突然想起来对你的辞海做个整改。于是你把每册的索引页全都拆了下来,专门装订成一册。每次你想利用索引页找东西时,你就打开这个索引册。从索引册,你就可以找到你要内容在哪一册哪个地方。这就是global index scan. 相对于1,2,就叫local index scan.
  
  4). 你有儿子吗?有一天,你想培训儿子的能力,于是你就找来你儿子给你翻册子,找资料。可是你儿子非得和老子一起找才肯帮你。于是你们父子俩就开始一起检索起辞海来,你查某些册子,他查另一些册子。这就叫partition scan.

  Quote:

  2. 如果建立了分区后,在一个查询中又没用到分区时的条件时,他的操作和没用分区时的操作有何不同?  

  有不同,成本会高一点。 前者是partition range all, 必须一本册子一本册子查过了, 后者就查一个册子了。但是前者并不定会比后者慢,因为前都可以用partition scan.


 
相关内容
赞助商链接