ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 索引扫描

索引扫描

原创 Linux操作系统 作者:tyoodz 时间:2011-11-21 15:31:01 0 删除 编辑


SQL> select count(*) from t4;

  COUNT(*)
----------
     10000
 
id为主键,n上有索引

SQL> EXPLAIN PLAN FOR
  2  SELECT /*+ index_join(t4 t4_n t4_pk) */ id, n  --通过hint强制索引连接
  3  FROM t4
  4  WHERE id BETWEEN 10 AND 20
  5  AND n < 100;

已解释。

SQL> SELECT * FROM table(dbms_xplan.display);

PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------
Plan hash value: 1079343316

-------------------------------------------------------------------------------
| Id  | Operation          | Name             | Rows  | Bytes | Cost (%CPU)| Ti
e     |
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |                  |     1 |    10 |     5  (20)| 00
00:01 |
|*  1 |  VIEW              | index$_join$_001 |     1 |    10 |     5  (20)| 00
00:01 |
|*  2 |   HASH JOIN        |                  |       |       |            |   |
|*  3 |    INDEX RANGE SCAN| T4_PK            |     1 |    10 |     3  (34)| 00
00:01 |
|*  4 |    INDEX RANGE SCAN| T4_N             |     1 |    10 |     3  (34)| 00
00:01 |
-------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------

   1 - filter("ID"<=20 AND "N"<100 AND "ID">=10)
   2 - access(ROWID=ROWID)         --是通过rowid连接的
   3 - access("ID">=10 AND "ID"<=20)
   4 - access("N"<100)

已选择19行。


索引连接的目的就是通过一张表的不通索引之间的连接去代替全表扫描。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25361369/viewspace-711698/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 对max和min的实验
请登录后发表评论 登录
全部评论

注册时间:2011-05-16

  • 博文量
    55
  • 访问量
    87644