创建与维护Oracle分区表和本地索引(二)

日期: 2008-08-25 作者:gaiguoqiang 来源:TechTarget中国 英文

  通过统一的tablespace子句为索引指定表空间。  






SQL> COL segment_name for a20 
  SQL> COL PARTITION_NAME for a20 
  SQL> select segment_name, partition_name, tablespace_name 
  2 FROM dba_segments 
  3 where segment_name = ’DBOBJS_IDX’; 
  SEGMENT_NAME PARTITION_NAME TABLESPACE_NAME 
  ——————– ——————– —————————— 
  DBOBJS_IDX DBOBJS_06 USERS 
  DBOBJS_IDX DBOBJS_07 USERS 
  SQL> insert into dbobjs 
  2 select object_id,object_name,created 
  3 from dba_objects where created 
  6227 rows created. 
  SQL> commit; 
  Commit complete. 
  SQL> select count(*) from dbobjs partition (DBOBJS_06); 
  count(*) 
  ———- 
  6154 
  SQL> select count(*) from dbobjs partition (dbobjs_07); 
  count(*) 
  ———- 
  73 



  我们可以通过查询来对比一下分区表和非分区表的查询性能差异: 







  SQL> set autotrace on 
  SQL> select count(*) from dbobjs where created < to_date(’01/01/2008’,’dd/mm/yyyy’); 
  count(*) 
  ———- 
  6227 
  &#101xecution Plan 
  ———————————————————- 
  0 select STATEMENT ptimizer=CHOOSE (Cost=1 Card=1 Bytes=9) 
  1 0 SORT (AGGREGATE) 
  2 1 PARTITION RANGE (ALL) 
  3 2 INDEX (RANGE SCAN) OF ’DBOBJS_IDX’ (NON-UNIQUE) (Cost=2 Card=8 Bytes=72) 
  Statistics 
  ———————————————————- 
  0 recursive calls 
  0 db block gets 
  25 consistent gets 
  0 physical reads 
  0 redo size 
  380 bytes sent via SQL*Net to client 
  503 bytes received via SQL*Net from client 
  2 SQL*Net roundtrips to/from client 
  0 sorts (memory) 
  0 sorts (disk) 
  1 rows processed 
  SQL> select count(*) from dbobjs where created < to_date(’01/01/2007’,’dd/mm/yyyy’); 
  count(*) 
  ———- 
  6154 
  &#101xecution Plan 
  ———————————————————- 
  0 select STATEMENT ptimizer=CHOOSE (Cost=1 Card=1 Bytes=9) 
  1 0 SORT (AGGREGATE) 
  2 1 INDEX (RANGE SCAN) OF ’DBOBJS_IDX’ (NON-UNIQUE) (Cost=2 Card=4 Bytes=36) 
  Statistics 
  ———————————————————- 
  0 recursive calls 
  0 db block gets 
  24 consistent gets 
  0 physical reads 
  0 redo size 
  380 bytes sent via SQL*Net to client 
  503 bytes received via SQL*Net from client 
  2 SQL*Net roundtrips to/from client 
  0 sorts (memory) 
  0 sorts (disk) 
  1 rows processed 
  SQL> select count(distinct(object_name)) from dbobjs where created < to_date(’01/01/2007’,’dd/mm/yyyy’); 
  count(DISTINCT(OBJECT_NAME)) 
  —————————- 
  4753 
  &#101xecution Plan 
  ———————————————————- 
  0 select STATEMENT ptimizer=CHOOSE (Cost=1 Card=1 Bytes=75) 
  1 0 SORT (GROUP BY) 
  2 1 TABLE ACCESS (BY LOCAL INDEX ROWID) OF ’DBOBJS’ (Cost=1 Card=4 Bytes=300) 
  3 2 INDEX (RANGE SCAN) OF ’DBOBJS_IDX’ (NON-UNIQUE) (Cost=2 Card=1) 
  Statistics 
  ———————————————————- 
  0 recursive calls 
  0 db block gets 
  101 consistent gets 
  0 physical reads 
  0 redo size 
  400 bytes sent via SQL*Net to client 
  503 bytes received via SQL*Net from client 
  2 SQL*Net roundtrips to/from client 
  1 sorts (memory) 
  0 sorts (disk) 
  1 rows processed

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐