一张表种的HASH JION

简介: 原创 转载请注明出处 HASH 连接的一个特列同一张表的不同索引可以做HASH连接来代替FULL TABLE SCAN,这种索引连接也只能勇HASH JION的方式实现,并且查询较少的字段的时候,可以勇到。

原创 转载请注明出处

HASH 连接的一个特列
同一张表的不同索引可以做HASH连接来代替FULL TABLE SCAN,这种索引连接也只能勇HASH JION的方式实现,
并且查询较少的字段的时候,可以勇到。所以如果看到一个表却出现的连接,大家也不要吃惊了。列子如下
create table T4
(
  ID    NUMBER not null,
  T3_ID NUMBER not null,
  N     NUMBER,
  PAD   VARCHAR2(4000)
);
alter table T4
  add constraint T4_PK primary key (ID);
create index T4_N on T4 (N);

SQL> explain plan for
  2 
  2  SELECT /*+ index_join(t4 t4_n t4_pk) */ id, n
  3  FROM t4
  4  WHERE id BETWEEN 10 AND 20
  5  AND n  
SQL> select * from table(dbms_xplan.display);
 
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 1741362252
--------------------------------------------------------------------------------
| Id  | Operation              | Name             | Rows  | Bytes | Cost (%CPU)|
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT       |                  |     1 |    26 |     8  (38)|
|*  1 |  VIEW                  | index$_join$_001 |     1 |    26 |     8  (38)|
|*  2 |   HASH JOIN            |                  |       |       |            |
|*  3 |    INDEX FAST FULL SCAN| T4_PK            |     1 |    26 |     4  (25)|
|*  4 |    INDEX FAST FULL SCAN| T4_N             |     1 |    26 |     4  (25)|
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter("ID">=10 AND "ID"   2 - access(ROWID=ROWID)
   3 - filter("ID"=10)
   4 - filter("N" 
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Note
-----
   - dynamic sampling used for this statement
 
23 rows selected
 
 可以看到一张表出现了HASH JION

相关文章
|
1月前
|
存储 负载均衡 算法
Hash介绍与应用详解
哈希算法在计算机科学中有着广泛而重要的应用,从数据存储、数据完整性校验到密码安全和分布式系统中的负载均衡,哈希函数都发挥着关键作用。通过本文的介绍和示例代码,希望您能更好地理解哈希的基本概念和实际应用,并在您的项目中有效地应用这些知识。
138 3
|
6月前
|
存储 缓存 搜索推荐
Hash Table
【6月更文挑战第12天】
34 1
|
7月前
|
Shell
|
存储 算法
hash
一.什么是hash 百度百科上的定义是: 是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
107 0
|
前端开发 JavaScript
hash、chunkhash和contenthash
webpack 通用配置优化
130 0
hash、chunkhash和contenthash
|
存储
Admiral(双向BFS + Hash)
Problem Description Suppose that you are an admiral of a famous naval troop. Our naval forces have got 21 battleships.
1141 0
|
算法 Java 数据安全/隐私保护