说明:之前使用range分区做出来的效果不明显,这次使用hash分区。

1、准备工作:

 ----创建两张一样的hash分区表,jacks_part和echos_part------------------ 1 SQL> create table jacks_part (owner varchar2(30),object_id number,object_name varchar2(128))
 2   2     partition by hash(object_id)
 3   3  partitions 30;
 4
 5 Table created.
 6
 7 SQL> create table echos_part (owner varchar2(30),object_id number,object_name varchar2(128))
 8   2     partition by hash(object_id)
 9   3  partitions 30;
10
11 Table created.
12
 ----分别向两张表插入一些记录-----------------13 SQL> insert into jacks_part select owner,object_id,object_name from dba_objects;
14
15 72196 rows created.
16
17 SQL> insert into echos_part select owner,object_id,object_name from jacks_part;
18
19 72196 rows created.
20
21 SQL> commit;
22
23 Commit complete.
24
 ----分别创建global索引和local索引---------------25 SQL> create index globals_ind on jacks_part(object_id)
26   2   global partition by hash(object_id);
27
28 Index created.
29
30 SQL> create index locals_ind on echos_part(object_id) local;
31
32 Index created.
33
 ----查询索引是否正确--------------------------34 SQL> select index_name,table_name,locality from user_part_indexes;
35
36 INDEX_NAME                 TABLE_NAME              LOCALI
37 ------------------ ------------------------------ ------
38 LOCALS_IND                ECHOS_PART                LOCAL
39 GLOBALS_IND               JACKS_PART               GLOBAL

2、分区索引性能优于全局索引的例子:

 1 SQL> set linesize 200;
 2 SQL> set autotrace traceonly;
 3 SQL> select /*+ index(echos_part,locals_ind) */ * from  echos_part where object_id>100;
 4
 5 72097 rows selected.
 6
 7
 8 Execution Plan
 9 ----------------------------------------------------------
10 Plan hash value: 3092815211
11
12 -----------------------------------------------------------------------------------------------------------------
13 | Id  | Operation               | Name    | Rows    | Bytes | Cost (%CPU)| Time    | Pstart| Pstop |
14 -----------------------------------------------------------------------------------------------------------------
15 |   0 | SELECT STATEMENT           |        |  4228 |   396K|    89   (0)| 00:00:02 |    |    |
16 |   1 |  PARTITION HASH ALL           |        |  4228 |   396K|    89   (0)| 00:00:02 |     1 |    30 |
17 |   2 |   TABLE ACCESS BY LOCAL INDEX ROWID| ECHOS_PART |  4228 |   396K|    89   (0)| 00:00:02 |     1 |    30 |
18 |*  3 |    INDEX RANGE SCAN           | LOCALS_IND |  4228 |    |    25   (0)| 00:00:01 |     1 |    30 |
19 -----------------------------------------------------------------------------------------------------------------
20
21 Predicate Information (identified by operation id):
22 ---------------------------------------------------
23
24    3 - access("OBJECT_ID">100)
25
26 Note
27 -----
28    - dynamic sampling used for this statement (level=2)
29
30
31 Statistics
32 ----------------------------------------------------------
33       0    recursive calls
34       0    db block gets
35    10562   consistent gets
36       0    physical reads
37       0    redo size
38   3128267  bytes sent via SQL*Net to client
39    53285   bytes received via SQL*Net from client
40    4808    SQL*Net roundtrips to/from client
41       0    sorts (memory)
42       0    sorts (disk)
43    72097   rows processed
44
45 SQL> select /*+ index(jacks_part,globals_ind) */ * from  jacks_part where object_id>100;
46
47 72097 rows selected.
48
49
50 Execution Plan
51 ----------------------------------------------------------
52 Plan hash value: 2501448352
53
54 -------------------------------------------------------------------------------------------------------------------
55 | Id  | Operation                | Name      | Rows  | Bytes | Cost (%CPU)| Time      | Pstart| Pstop |
56 -------------------------------------------------------------------------------------------------------------------
57 |   0 | SELECT STATEMENT            |          |  2500 |   234K|  4639   (1)| 00:00:56 |      |      |
58 |   1 |  PARTITION HASH SINGLE            |          |  2500 |   234K|  4639   (1)| 00:00:56 |    1 |    1 |
59 |   2 |   TABLE ACCESS BY GLOBAL INDEX ROWID| JACKS_PART  |  2500 |   234K|  4639   (1)| 00:00:56 | ROWID | ROWID |
60 |*  3 |    INDEX RANGE SCAN            | GLOBALS_IND |  2500 |      |    15   (0)| 00:00:01 |    1 |    1 |
61 -------------------------------------------------------------------------------------------------------------------
62
63 Predicate Information (identified by operation id):
64 ---------------------------------------------------
65
66    3 - access("OBJECT_ID">100)
67
68 Note
69 -----
70    - dynamic sampling used for this statement (level=2)
71
72
73 Statistics
74 ----------------------------------------------------------
75       0    recursive calls
76       0    db block gets
77    74718   consistent gets
78       0    physical reads
79       0    redo size
80   3077218  bytes sent via SQL*Net to client
81    53285   bytes received via SQL*Net from client
82     4808   SQL*Net roundtrips to/from client
83       0    sorts (memory)
84       0    sorts (disk)
85    72097   rows processed

3、分区索引性能低于全局索引的例子1:

 1 SQL> select /*+ index(echos_part,locals_ind) */ count(*) from  echos_part where object_id>100;
 2
 3
 4 Execution Plan
 5 ----------------------------------------------------------
 6 Plan hash value: 2317569636
 7
 8 --------------------------------------------------------------------------------------------------
 9 | Id  | Operation        | Name     | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
10 --------------------------------------------------------------------------------------------------
11 |   0 | SELECT STATEMENT    |         |     1 |    13 |    25   (0)| 00:00:01 |     |     |
12 |   1 |  SORT AGGREGATE     |         |     1 |    13 |          |      |     |     |
13 |   2 |   PARTITION HASH ALL|         |  4228 | 54964 |    25   (0)| 00:00:01 |     1 |    30 |
14 |*  3 |    INDEX RANGE SCAN | LOCALS_IND |  4228 | 54964 |    25   (0)| 00:00:01 |     1 |    30 |
15 --------------------------------------------------------------------------------------------------
16
17 Predicate Information (identified by operation id):
18 ---------------------------------------------------
19
20    3 - access("OBJECT_ID">100)
21
22 Note
23 -----
24    - dynamic sampling used for this statement (level=2)
25
26
27 Statistics
28 ----------------------------------------------------------
29       0  recursive calls
30       0  db block gets
31     205  consistent gets
32       0  physical reads
33       0  redo size
34     424  bytes sent via SQL*Net to client
35     419  bytes received via SQL*Net from client
36       2  SQL*Net roundtrips to/from client
37       0  sorts (memory)
38       0  sorts (disk)
39       1  rows processed
40
41 SQL> select /*+ index(jacks_part,globals_ind) */ count(*) from  jacks_part where object_id>100;
42
43
44 Execution Plan
45 ----------------------------------------------------------
46 Plan hash value: 2478129137
47
48 ------------------------------------------------------------------------------------------------------
49 | Id  | Operation           | Name         | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
50 ------------------------------------------------------------------------------------------------------
51 |   0 | SELECT STATEMENT       |         |       1 |      13 |      15   (0)| 00:00:01 |         |         |
52 |   1 |  SORT AGGREGATE        |         |       1 |      13 |          |         |         |         |
53 |   2 |   PARTITION HASH SINGLE|         |    2500 | 32500 |      15   (0)| 00:00:01 |       1 |       1 |
54 |*  3 |    INDEX RANGE SCAN    | GLOBALS_IND |    2500 | 32500 |      15   (0)| 00:00:01 |       1 |       1 |
55 ------------------------------------------------------------------------------------------------------
56
57 Predicate Information (identified by operation id):
58 ---------------------------------------------------
59
60    3 - access("OBJECT_ID">100)
61
62 Note
63 -----
64    - dynamic sampling used for this statement (level=2)
65
66
67 Statistics
68 ----------------------------------------------------------
69       0  recursive calls
70       0  db block gets
71     201  consistent gets
72       0  physical reads
73       0  redo size
74     424  bytes sent via SQL*Net to client
75     419  bytes received via SQL*Net from client
76       2  SQL*Net roundtrips to/from client
77       0  sorts (memory)
78       0  sorts (disk)
79       1  rows processed

分区索引性能低于全局索引的例子2:

 1 SQL> drop index globals_ind;
 2
 3 Index dropped.
 4
 5 SQL> create index global_indexs on jacks_part(object_id) global;
 6
 7 Index created.
 8
 9 SQL> select /*+ index(echos_part,locals_ind) */ count(*) from  echos_part where object_id>100;
10
11
12
13 Execution Plan
14 ----------------------------------------------------------
15 Plan hash value: 2317569636
16
17 --------------------------------------------------------------------------------------------------
18 | Id  | Operation        | Name     | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
19 --------------------------------------------------------------------------------------------------
20 |   0 | SELECT STATEMENT    |         |     1 |     5 |   175   (0)| 00:00:03 |     |     |
21 |   1 |  SORT AGGREGATE     |         |     1 |     5 |          |      |     |     |
22 |   2 |   PARTITION HASH ALL|         | 72101 |   352K|   175   (0)| 00:00:03 |     1 |    30 |
23 |*  3 |    INDEX RANGE SCAN | LOCALS_IND | 72101 |   352K|   175   (0)| 00:00:03 |     1 |    30 |
24 --------------------------------------------------------------------------------------------------
25
26 Predicate Information (identified by operation id):
27 ---------------------------------------------------
28
29    3 - access("OBJECT_ID">100)
30
31
32 Statistics
33 ----------------------------------------------------------
34    1704  recursive calls
35       0  db block gets
36     437  consistent gets
37     206  physical reads
38       0  redo size
39
40 SQL> select /*+ index(jacks_part,global_indexs) */ count(*) from  jacks_part where object_id>100;
41
42
43 Execution Plan
44 ----------------------------------------------------------
45 Plan hash value: 1016566238
46
47 -----------------------------------------------------------------------------------
48 | Id  | Operation      | Name      | Rows  | Bytes | Cost (%CPU)| Time      |
49 -----------------------------------------------------------------------------------
50 |   0 | SELECT STATEMENT  |          |    1 |    5 |   201   (0)| 00:00:03 |
51 |   1 |  SORT AGGREGATE   |          |    1 |    5 |           |      |
52 |*  2 |   INDEX RANGE SCAN| GLOBAL_INDEXS | 72101 |   352K|   201   (0)| 00:00:03 |
53 -----------------------------------------------------------------------------------
54
55 Predicate Information (identified by operation id):
56 ---------------------------------------------------
57
58    2 - access("OBJECT_ID">100)
59
60
61 Statistics
62 ----------------------------------------------------------
63       1  recursive calls
64       0  db block gets
65     201  consistent gets
66     200  physical reads
67       0  redo size

关于分区索引与全局索引性能比较的示例相关推荐

  1. 本地索引和全局索引的适用场景

    [背景]分区表创建好了之后,如果需要最大化分区表的性能就需要结合索引的使用,分区表有两种索引:本地索引和全局索引.既然存在着两种的索引类型,相信存在即合理.既然存在就会有存在的原因,也就是在特定的场景 ...

  2. oracle不适合建立索引的场景,Oracle 分区表中本地索引和全局索引的适用场景

    背景 分区表创建好了之后,如果需要最大化分区表的性能就需要结合索引的使用,分区表有两种索引:本地索引和全局索引.既然存在着两种的索引类型,相信存在即合理.既然存在就会有存在的原因,也就是在特定的场景中 ...

  3. Oracle 本地索引和全局索引

    文章目录 背景 全局索引 本地索引 索引的选择 全局索引修改为本地索引 参考 背景 上一篇Oracle 分区表 讲述了 Oracle 分区表建立的几种方式.那么分区表创建好了之后,其索引该如何选择呢? ...

  4. mysql 分区 全局索引_全局分区索引与局部分区索引

    分区索引 分区索引,有是全局分区索引与局部分区索引,加上一种全局非分区索引(也就是普通索引),加起来共三种.下面我们讨论了这三种索引的组织结构以及应用场景. 1.全局非分区索引可以依赖普通的表,也可以 ...

  5. mysql 分区索引失效_数据库分区表全局索引失效故障

    现场实施反馈一个分区表的几个全局索引老是失效. 通过视图v$sql, v$sqlarea等视图查看,对这张分区表执行过的操作有drop partition和truncate partition操作,但 ...

  6. oracle全局索引 效率,关于插入,全局索引和局部索引的情况,那种效率高

    分区表上的索引 表可以按range,hash,list分区,表分区后,其上的索引和普通表上的索引有所不同,oracle对于分区表上的索引分为2类,即局部索引和全局索引,下面分别对这2种索引的特点和局限 ...

  7. [Phoenix] 十、全局索引设计实践

    概述 全局索引是Phoenix的重要特性,合理的使用二级索引能降低查询延时,让集群资源得以充分利用. 本文将讲述如何高效的设计和使用索引. 全局索引说明 全局索引的根本是通过单独的HBase表来存储数 ...

  8. Phoenix:全局索引设计实践

    概述 全局索引是Phoenix的重要特性,合理的使用二级索引能降低查询延时,让集群资源得以充分利用. 本文将讲述如何高效的设计和使用索引. 全局索引说明 全局索引的根本是通过单独的HBase表来存储数 ...

  9. 【Oracle】表级别分区操作对索引(本地分区索引,全局分区索引,非分区索引)的影响

    --参考自<Oracle索引技术> 先贴上结论吧: 下面对以上几种操作分别测试: 创建测试表及索引 --创建测试分区表 CREATE TABLE employees_parttest (e ...

最新文章

  1. 《需求分析与系统设计》阅读笔记三
  2. python输入球的半径_基于用户输入半径的Myro移动机器人
  3. 【渝粤教育】国家开放大学2018年春季 0105-22T酒店营销实务 参考试题
  4. Spring配置JPA的xml路径的问题
  5. JAVA学习之网络编程UDP篇
  6. 计算机网络实验视频word,(完整word版)《计算机网络与通信》实验.docx
  7. Genius‘s Gambit【学习进度条1】
  8. 计算机链接与rtu通讯的区别,RTU
  9. 刚入职就写了个bug,把几万用户搞蓝屏了···
  10. 问卷小程序php,问卷调查小程序(tp后台)
  11. 数据库COUNT(*)、COUNT(字段)和COUNT(1)的异同
  12. 海尔简爱s11怎么进入bios_海尔笔记本如何进入BIOS设置_海尔笔记本进入bios方法...
  13. 艺无止境·一路前行——王玉玺先生作品欣赏
  14. php树递归算法,php实现无限级树型菜单(函数递归算法)
  15. python实现批量识别图片文字,生成对应的txt文件
  16. 【转】WebMatrix 从零建站如此简单!来自微软的免费网站服务器快速建站套件
  17. PNAS:人类小脑皮层的表面积相当于大脑的80%
  18. vCalendar文件格式解析
  19. 20岁不考证,25岁不加班,30岁不熬夜,40岁你还有工作吗?
  20. IT 人能在一线城市里生活一辈子吗?

热门文章

  1. 数据挖掘肿瘤预测_科研套路不嫌多,数据挖掘发3分
  2. python中变量名存储在哪里_python – 如何在内部存储和映射变量名称?
  3. HDU 2243 考研路茫茫——单词情结 求长度小于等于L的通路总数的方法
  4. hdu 5045 Contest(状态压缩DP)
  5. 11月30在spring mvc中使用Validator框架和文件上传
  6. 全国计算机等级考试题库二级C操作题100套(第22套)
  7. android 图片识别白色区域进行裁剪_【研途技能贴】| 4款好用的图片处理软件推荐...
  8. python谁是卧底游戏流程图_虎牙小程序—谁是卧底 |明星互动游戏
  9. matlab画泡面图,MATLAB中,( )函数可以保存图像并指定为图像文件格式。
  10. php mail ld preload,读《利用环境变量LD_PRELOAD来绕过php disable_function执行系统命令》有感...