読者です 読者をやめる 読者になる 読者になる

索引について

  • 索引とは

索引とは、DB上のデータを効率的に取得するために使用するDBオブジェクトのこと
ルートブロック、ブランチブロック、リーフブロック
ルートブロックには、ブランチブロックへのキーの範囲と下位ブロックのポインタが入っている、
リーフブロックには、ROWIDとキー値が入っている。

  • 索引の種類は
  • 索引の中身を見てみよう
ROWID
------------------
AAAZBiAAEAAAAOEADt
AAAZBiAAEAAAAOEADu
AAAZBiAAEAAAAOEADv

SQL> select * from sales where rowid = 'AAAZBiAAEAAAAOEADv';
    SALEID   QUANTITY CUSTOMERID  PRODUCTID EMPLOYEEID SALEDATE
---------- ---------- ---------- ---------- ---------- --------
       998          1         14          8         23 07-08-28

SQL> analyze index sales_index compute statistics;
索引が分析されました。

SQL> select HEIGHT,BLOCKS,NAME,LF_ROWS,LF_BLKS,BR_ROWS,BR_BLKS from index_stats;
    HEIGHT     BLOCKS NAME                              LF_ROWS    LF_BLKS    BR_ROWS    BR_BLKS
---------- ---------- ------------------------------ ---------- ---------- ---------- ----------
         2          8 SALES_INDEX                          1001          2          1          1

Oracleパフォーマンス障害の克服(3):Bツリーインデックスに最高のパフォーマンスを (2/4) - @IT

ANALYZE
■マージジョイン

SQL> r
  1* select * from sales s,products p  where s.productid = p.productid

1000行が選択されました。


実行計画
----------------------------------------------------------
Plan hash value: 3026272181

---------------------------------------------------------------------------------------------
| Id  | Operation                    | Name         | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT             |              |  1000 | 44000 |     6  (17)| 00:00:01 |
|   1 |  MERGE JOIN                  |              |  1000 | 44000 |     6  (17)| 00:00:01 |
|   2 |   TABLE ACCESS BY INDEX ROWID| PRODUCTS     |    50 |  1000 |     2   (0)| 00:00:01 |
|   3 |    INDEX FULL SCAN           | SYS_C0015209 |    50 |       |     1   (0)| 00:00:01 |
|*  4 |   SORT JOIN                  |              |  1000 | 24000 |     4  (25)| 00:00:01 |
|   5 |    TABLE ACCESS FULL         | SALES        |  1000 | 24000 |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   4 - access("S"."PRODUCTID"="P"."PRODUCTID")
       filter("S"."PRODUCTID"="P"."PRODUCTID")


統計
----------------------------------------------------------
          0  recursive calls
          0  db block gets
         84  consistent gets
          0  physical reads
          0  redo size
      42393  bytes sent via SQL*Net to client
       1246  bytes received via SQL*Net from client
         68  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
       1000  rows processed

SQL>