演習: ハイブリッド・パーティション表でのインメモリーの使用

この演習では、内部パーティションか外部パーティションかに関係なく、ハイブリッド・パーティション表のINMEMORY属性が表レベルとパーティション・レベルの両方でどのように処理されるかを示します。

  1. 新しい演習を開始する前に、演習の環境の推奨事項を参照してください。
  2. 演習を開始する前に、/home/oracle/labs/M104784GC10/IM_Hybrid_External_setup.shシェル・スクリプトを実行します。このシェル・スクリプトでは、IM列ストアを110Mに構成し、HYPTEXTユーザーおよび外部ファイル用のディレクトリを作成します。
    $ cd /home/oracle/labs/M104784GC10
    $ /home/oracle/labs/M104784GC10/IM_Hybrid_External_setup.sh
    SQL*Plus: Release 20.0.0.0.0 - Production on Wed Jan 15 05:17:45 2020
    Version 20.2.0.0.0
    
    Copyright (c) 1982, 2019, Oracle.  All rights reserved.
    
    Connected to:
    Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production
    Version 20.2.0.0.0
    
    SQL> SHUTDOWN ABORT
    ORACLE instance shut down.
    SQL> STARTUP MOUNT
    ORACLE instance started.
    
    Total System Global Area  851442944 bytes
    Fixed Size                  9571584 bytes
    Variable Size             432013312 bytes
    Database Buffers          285212672 bytes
    Redo Buffers                7204864 bytes
    In-Memory Area            117440512 bytes
    Database mounted.
    SQL> ALTER SYSTEM SET sga_target=812M SCOPE=spfile;
    
    System altered.
    
    SQL> ALTER SYSTEM SET inmemory_size=110M SCOPE=SPFILE;
    
    System altered.
    
    SQL> ALTER SYSTEM SET query_rewrite_integrity=stale_tolerated SCOPE=SPFILE;
    
    System altered.
    
    SQL> SET ECHO OFF
    
    System altered.
    
    SQL> ALTER SYSTEM SET INMEMORY_AUTOMATIC_LEVEL=LOW SCOPE=SPFILE;
    
    System altered.
    
    SQL> shutdown immediate
    ORA-01109: database not open
    
    
    Database dismounted.
    ORACLE instance shut down.
    SQL> STARTUP
    ORACLE instance started.
    
    Total System Global Area  851442944 bytes
    Fixed Size                  9571584 bytes
    Variable Size             432013312 bytes
    Database Buffers          285212672 bytes
    Redo Buffers                7204864 bytes
    In-Memory Area            117440512 bytes
    Database mounted.
    Database opened.
    SQL> ALTER PLUGGABLE DATABASE pdb20 OPEN;
    
    Pluggable database altered.
    
    SQL> CONNECT sys/password@PDB20 AS SYSDBA
    Connected.
    SQL> ALTER SYSTEM SET INMEMORY_AUTOMATIC_LEVEL=LOW SCOPE=SPFILE;
    
    System altered.
    
    SQL> ALTER SYSTEM SET query_rewrite_integrity=stale_tolerated SCOPE=SPFILE;
    
    System altered.
    
    SQL> shutdown immediate
    Pluggable Database closed.
    SQL> STARTUP
    Pluggable Database opened.
    SQL> exit
    Disconnected from Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production
    Version 20.2.0.0.0
    
    SQL*Plus: Release 20.0.0.0.0 - Production on Wed Jan 15 05:19:12 2020
    Version 20.2.0.0.0
    
    Copyright (c) 1982, 2019, Oracle.  All rights reserved.
    
    Connected to:
    Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production
    Version 20.2.0.0.0
    
    SQL> ALTER SYSTEM SET db_create_file_dest='';
    
    System altered.
    
    SQL> DROP USER hyptext CASCADE;
    DROP USER hyptext CASCADE
              *
    ERROR at line 1:
    ORA-01918: user 'HYPTEXT' does not exist
    
    
    SQL> DROP TABLESPACE imtbs INCLUDING CONTENTS AND DATAFILES cascade constraints;
    DROP TABLESPACE imtbs INCLUDING CONTENTS AND DATAFILES cascade constraints
    *
    ERROR at line 1:
    ORA-00959: tablespace 'IMTBS' does not exist
    
    
    SQL> CREATE TABLESPACE imtbs DATAFILE '/u02/app/oracle/oradata/imtbs1.dbf' SIZE 10G;
    
    Tablespace created.
    
    SQL> CREATE USER hyptext IDENTIFIED BY password DEFAULT TABLESPACE imtbs;
    
    User created.
    
    SQL> GRANT create session, create table, unlimited tablespace TO hyptext;
    
    Grant succeeded.
    
    SQL> HOST mkdir -p /home/oracle/labs/M104784GC10/CENT17
    
    SQL> HOST mkdir -p /home/oracle/labs/M104784GC10/CENT18
    
    SQL> HOST mkdir -p /home/oracle/labs/M104784GC10/CENT19
    
    SQL> HOST mkdir -p /home/oracle/labs/M104784GC10/CENT20
    
    SQL> HOST mv /home/oracle/labs/M104784GC10/cent17.dat /home/oracle/labs/M104784GC10/CENT17
    
    SQL> HOST mv /home/oracle/labs/M104784GC10/cent19.dat /home/oracle/labs/M104784GC10/CENT19
    
    SQL> HOST mv /home/oracle/labs/M104784GC10/cent20.dat /home/oracle/labs/M104784GC10/CENT20
    
    SQL> CREATE OR REPLACE DIRECTORY cent17 AS '/home/oracle/labs/M104784GC10/CENT17';
    
    Directory created.
    
    SQL> CREATE OR REPLACE DIRECTORY cent18 AS '/home/oracle/labs/M104784GC10/CENT18';
    
    Directory created.
    
    SQL> CREATE OR REPLACE DIRECTORY cent19 AS '/home/oracle/labs/M104784GC10/CENT19';
    
    Directory created.
    
    SQL> CREATE OR REPLACE DIRECTORY cent20 AS '/home/oracle/labs/M104784GC10/CENT20';
    
    Directory created.
    
    SQL> GRANT read, write ON DIRECTORY cent17 TO hyptext;
    
    Grant succeeded.
    
    SQL> GRANT read, write ON DIRECTORY cent18 TO hyptext;
    
    Grant succeeded.
    
    SQL> GRANT read, write ON DIRECTORY cent19 TO hyptext;
    
    Grant succeeded.
    
    SQL> GRANT read, write ON DIRECTORY cent20 TO hyptext;
    
    Grant succeeded.
    
    SQL> exit
    Disconnected from Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production
    Version 20.2.0.0.0
    $
  3. 演習の第1部では、ハイブリッド・パーティション表のINMEMORY属性が、内部パーティションまたは外部パーティションを含む表レベルでどのように処理されるかを示します。
    1. SYSTEMとしてPDB20に接続します。
      $ sqlplus system@PDB20
      SQL*Plus: Release 20.0.0.0.0 - Production on Thu Jan 9 04:08:41 2020
      Version 20.2.0.0.0
      
      Copyright (c) 1982, 2019, Oracle.  All rights reserved.
      
      Enter password: password
      Last Successful login time: Wed Jan 08 2020 12:03:56 +00:00
      
      Connected to:
      Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production
      Version 20.2.0.0.0
      SQL> COL partition_name FORMAT A14
      SQL> COL segment_name FORMAT A14
      SQL>
    2. インメモリー・ハイブリッド・パーティション表を作成します。INMEMORY属性を表レベルで適用します。
      SQL> CREATE TABLE hyptext.inmem_tab
        (history_event NUMBER , time_id DATE) TABLESPACE imtbs 
         EXTERNAL PARTITION ATTRIBUTES 
         (TYPE ORACLE_LOADER DEFAULT DIRECTORY cent20 
              ACCESS PARAMETERS
               (FIELDS TERMINATED BY ',' (history_event , time_id DATE 'dd-MON-yyyy'))
               REJECT LIMIT UNLIMITED
         ) 
        PARTITION BY RANGE (time_id) 
        (PARTITION cent18 VALUES LESS THAN (TO_DATE('01-Jan-1800','dd-MON-yyyy')) EXTERNAL,
         PARTITION cent19 VALUES LESS THAN (TO_DATE('01-Jan-1900','dd-MON-yyyy')) EXTERNAL 
      	                 DEFAULT DIRECTORY cent19 LOCATION ('cent19.dat'),
         PARTITION cent20 VALUES LESS THAN (TO_DATE('01-Jan-2000','dd-MON-yyyy')) EXTERNAL 
      	                 LOCATION('cent20.dat'),
         PARTITION y2000 VALUES LESS THAN (TO_DATE('01-Jan-2001','dd-MON-yyyy')),
         PARTITION pmax VALUES LESS THAN (MAXVALUE))
        INMEMORY MEMCOMPRESS FOR QUERY HIGH;
      
      Table created.
      
      SQL>
    3. インメモリー・セグメントとして定義されているパーティションはどれですか。
      SQL> SELECT partition_name, inmemory, inmemory_compression
      FROM   dba_tab_partitions
      WHERE  table_name = 'INMEM_TAB';
      
      PARTITION_NAME INMEMORY INMEMORY_COMPRESS
      -------------- -------- -----------------
      CENT18
      CENT19
      CENT20
      PMAX           ENABLED  FOR QUERY HIGH
      Y2000          ENABLED  FOR QUERY HIGH
      
      SQL>

      内部パーティションはインメモリーとして定義されます。外部パーティションは、インメモリーとしても非インメモリーとしても定義されません。

      DBA_XTERNAL_TAB_PARTITIONSビューを使用して、外部パーティションのインメモリー・ステータスを表示します。

      SQL> SELECT partition_name, inmemory, inmemory_compression 
                    FROM dba_xternal_tab_partitions WHERE TABLE_NAME='INMEM_TAB';
      
      PARTITION_NAME INMEMORY INMEMORY_COMPRESS
      -------------- -------- -----------------
      CENT19         ENABLED  FOR QUERY HIGH
      CENT20         ENABLED  FOR QUERY HIGH
      
      SQL>
    4. /home/oracle/labs/M104784GC10/insert_select.sql SQLスクリプトを実行します。このスクリプトでは、表のパーティションに行を挿入し、表を問い合せてデータをインメモリー列ストアに移入します。インメモリー列ストアに移入されるパーティションはどれですか。
      SQL> @/home/oracle/labs/M104784GC10/insert_select.sql
      SQL> INSERT INTO hyptext.inmem_tab VALUES (21,to_date('31.12.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (22,to_date('31.10.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (23,to_date('01.02.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (24,to_date('27.03.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (25,to_date('31.03.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (26,to_date('15.04.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (27,to_date('02.09.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (29,to_date('12.08.2018', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (30,to_date('15.09.2017', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> COMMIT;
      
      Commit complete.
      
      SQL> SELECT * FROM hyptext.inmem_tab;
      
      HISTORY_EVENT TIME_ID
      ------------- ---------
                 11 01-JAN-76
                 12 01-JAN-15
                 13 01-JAN-28
                 14 01-JAN-37
                 15 01-JAN-49
                 16 01-FEB-59
                 17 01-FEB-96
                 18 01-FEB-97
                 19 01-FEB-98
                 20 01-FEB-98
                  1 01-JAN-76
                  2 01-JAN-15
                  3 01-JAN-28
                  4 01-JAN-37
                  5 01-JAN-49
                  6 01-FEB-59
                  7 01-FEB-96
                  8 01-FEB-97
                  9 01-FEB-98
                 10 01-FEB-98
                 21 31-DEC-00
                 22 31-OCT-00
                 23 01-FEB-00
                 24 27-MAR-00
                 25 31-MAR-00
                 26 15-APR-00
                 27 02-SEP-00
                 29 12-AUG-18
                 30 15-SEP-17
      
      29 rows selected.
      
      SQL>
      SQL> SELECT segment_name, partition_name FROM v$im_segments;
      
      SEGMENT_NAME   PARTITION_NAME
      -------------- --------------
      INMEM_TAB      PMAX
      INMEM_TAB      CENT19
      INMEM_TAB      Y2000
      INMEM_TAB      CENT20
      
      SQL19>

      INMEMORY属性が表レベルで設定されたため、すべての内部パーティションおよび外部パーティションがインメモリー列ストアに移入されます。

    5. 実行計画には、パーティションへの様々なタイプのアクセスが表示されますか。
      SQL> EXPLAIN PLAN FOR SELECT * FROM hyptext.inmem_tab;
      
      Explained.
      
      SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
      
      PLAN_TABLE_OUTPUT
      --------------------------------------------------------------------
      Plan hash value: 2513257138
      --------------------------------------------------------------------
      | Id  | Operation                               | Name      | Rows
      | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
      --------------------------------------------------------------------
      |   0 | SELECT STATEMENT                        |           |   188K
      |  4057K|   105   (1)| 00:00:01 |       |       |
      |   1 |  PARTITION RANGE ALL                    |           |   188K
      |  4057K|   105   (1)| 00:00:01 |     1 |     5 |
      |   2 |   TABLE ACCESS HYBRID PART INMEMORY FULL| INMEM_TAB |   188K
      |  4057K|   105   (1)| 00:00:01 |     1 |     5 |
      |   3 |    TABLE ACCESS INMEMORY FULL           | INMEM_TAB |
      |       |            |          |     1 |     5 |
      --------------------------------------------------------------------
      
      10 rows selected.
      
      SQL> EXPLAIN PLAN FOR SELECT * FROM hyptext.inmem_tab PARTITION (CENT19);
      
      Explained.
      
      SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
      
      PLAN_TABLE_OUTPUT
      --------------------------------------------------------------------
      Plan hash value: 938963152
      --------------------------------------------------------------------
      | Id  | Operation                            | Name      | Rows  | B
      ytes | Cost (%CPU)| Time     | Pstart| Pstop |
      --------------------------------------------------------------------
      |   0 | SELECT STATEMENT                     |           |  8169 |
       175K|    29   (0)| 00:00:01 |       |       |
      |   1 |  PARTITION RANGE SINGLE              |           |  8169 |
       175K|    29   (0)| 00:00:01 |     2 |     2 |
      |   2 |   EXTERNAL TABLE ACCESS INMEMORY FULL| INMEM_TAB |  8169 |
       175K|    29   (0)| 00:00:01 |     2 |     2 |
      --------------------------------------------------------------------
      
      9 rows selected.
      
      SQL>

      アクセス・パスには、TABLE ACCESS HYBRID PART INMEMORY FULL (NO INMEMORYおよびINMEMORYアクセス対象セグメント)または選択した外部パーティションのEXTERNAL TABLE ACCESS INMEMORY FULL (INMEMORY)のいずれかが表示されます。

    6. HYPTEXT.INMEM_TAB表を削除します。
      SQL> DROP TABLE hyptext.inmem_tab;
      
      Table dropped.
      
      SQL>
  4. 演習の第2部では、ハイブリッド・パーティション表の内部パーティションまたは外部パーティションのINMEMORY属性がどのように処理されるかを示します。
    1. インメモリー・ハイブリッド・パーティション表を作成します。パーティション・レベルで、内部パーティションおよび外部パーティションにINMEMORY属性を適用します。
      SQL> CREATE TABLE hyptext.inmem_tab
        (history_event NUMBER , time_id DATE) TABLESPACE imtbs 
         EXTERNAL PARTITION ATTRIBUTES 
         (TYPE ORACLE_LOADER DEFAULT DIRECTORY cent20 
              ACCESS PARAMETERS
               (FIELDS TERMINATED BY ',' (history_event , time_id DATE 'dd-MON-yyyy'))
               REJECT LIMIT UNLIMITED
         ) 
        PARTITION BY RANGE (time_id) 
        (PARTITION cent18 VALUES LESS THAN (TO_DATE('01-Jan-1800','dd-MON-yyyy')) EXTERNAL,
         PARTITION cent19 VALUES LESS THAN (TO_DATE('01-Jan-1900','dd-MON-yyyy')) EXTERNAL 
      	                 DEFAULT DIRECTORY cent19 LOCATION ('cent19.dat')
                              INMEMORY MEMCOMPRESS FOR QUERY HIGH,
         PARTITION cent20 VALUES LESS THAN (TO_DATE('01-Jan-2000','dd-MON-yyyy')) EXTERNAL 
      	                 LOCATION('cent20.dat'),
         PARTITION y2000 VALUES LESS THAN (TO_DATE('01-Jan-2001','dd-MON-yyyy'))
                              INMEMORY MEMCOMPRESS FOR CAPACITY LOW,
         PARTITION pmax VALUES LESS THAN (MAXVALUE));
      
      Table created.
      
      SQL>
    2. インメモリーとして定義されているパーティションはどれですか。
      SQL> SELECT partition_name, inmemory, inmemory_compression
      FROM   dba_tab_partitions
      WHERE  table_name = 'INMEM_TAB';
      
      PARTITION_NAME INMEMORY INMEMORY_COMPRESS
      -------------- -------- -----------------
      CENT18
      CENT19
      CENT20
      PMAX           DISABLED
      Y2000          ENABLED  FOR CAPACITY LOW
      
      SQL>

      INMEMORY属性が設定された内部パーティションのみがインメモリーとして定義されます。外部パーティションは、INMEMORY属性が設定されていても、インメモリーとしても非インメモリーとしても定義されません。

      DBA_XTERNAL_TAB_PARTITIONSビューを使用して、外部パーティションのインメモリー・ステータスを表示します。

      SQL> SELECT partition_name, inmemory, inmemory_compression 
                    FROM dba_xternal_tab_partitions WHERE TABLE_NAME='INMEM_TAB';
      
      PARTITION_NAME INMEMORY INMEMORY_COMPRESS
      -------------- -------- -----------------
      CENT19         ENABLED  FOR QUERY HIGH
      CENT20         DISABLED
      
      SQL>
    3. /home/oracle/labs/M104784GC10/insert_select.sql SQLスクリプトを実行します。このスクリプトでは、表のパーティションに行を挿入し、表を問い合せてデータをインメモリー列ストアに移入します。インメモリー列ストアに移入されるパーティションはどれですか。
      SQL> @/home/oracle/labs/M104784GC10/insert_select.sql
      SQL> SET ECHO ON
      SQL>
      SQL> INSERT INTO hyptext.inmem_tab VALUES (21,to_date('31.12.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (22,to_date('31.10.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (23,to_date('01.02.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (24,to_date('27.03.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (25,to_date('31.03.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (26,to_date('15.04.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (27,to_date('02.09.2000', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (29,to_date('12.08.2018', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> INSERT INTO hyptext.inmem_tab VALUES (30,to_date('15.09.2017', 'dd.mm.yyyy'));
      
      1 row created.
      
      SQL> COMMIT;
      
      Commit complete.
      
      SQL> SELECT * FROM hyptext.inmem_tab;
      
      HISTORY_EVENT TIME_ID
      ------------- ---------
                 11 01-JAN-76
                 12 01-JAN-15
                 13 01-JAN-28
                 14 01-JAN-37
                 15 01-JAN-49
                 16 01-FEB-59
                 17 01-FEB-96
                 18 01-FEB-97
                 19 01-FEB-98
                 20 01-FEB-98
                  1 01-JAN-76
                  2 01-JAN-15
                  3 01-JAN-28
                  4 01-JAN-37
                  5 01-JAN-49
                  6 01-FEB-59
                  7 01-FEB-96
                  8 01-FEB-97
                  9 01-FEB-98
                 10 01-FEB-98
                 21 31-DEC-00
                 22 31-OCT-00
                 23 01-FEB-00
                 24 27-MAR-00
                 25 31-MAR-00
                 26 15-APR-00
                 27 02-SEP-00
                 29 12-AUG-18
                 30 15-SEP-17
      
      29 rows selected.
      
      SQL>
      SQL> SELECT segment_name, partition_name FROM v$im_segments;
      
      SEGMENT_NAME   PARTITION_NAME
      -------------- --------------
      INMEM_TAB      CENT19
      INMEM_TAB      Y2000
      
      SQL>

      Oracle Database 20cセッションでは、インメモリーとして定義された内部パーティションおよび外部パーティションがインメモリー列ストアに移入されます。

    4. 実行計画には、パーティションへの様々なタイプのアクセスが表示されますか。
      SQL> EXPLAIN PLAN FOR SELECT * FROM hyptext.inmem_tab;
      
      Explained.
      
      SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
      
      PLAN_TABLE_OUTPUT
      --------------------------------------------------------------------
      Plan hash value: 2513257138
      --------------------------------------------------------------------
      | Id  | Operation                               | Name      | Rows
      | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
      --------------------------------------------------------------------
      |   0 | SELECT STATEMENT                        |           |   188K
      |  4057K|   367   (1)| 00:00:01 |       |       |
      |   1 |  PARTITION RANGE ALL                    |           |   188K
      |  4057K|   367   (1)| 00:00:01 |     1 |     5 |
      |   2 |   TABLE ACCESS HYBRID PART INMEMORY FULL| INMEM_TAB |   188K
      |  4057K|   367   (1)| 00:00:01 |     1 |     5 |
      |   3 |    TABLE ACCESS INMEMORY FULL           | INMEM_TAB |
      |       |            |          |     1 |     5 |
      --------------------------------------------------------------------
      
      10 rows selected.
      
      SQL> EXPLAIN PLAN FOR SELECT * FROM hyptext.inmem_tab PARTITION (CENT19);
      
      Explained.
      
      SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
      
      PLAN_TABLE_OUTPUT
      --------------------------------------------------------------------
      Plan hash value: 938963152
      --------------------------------------------------------------------
      | Id  | Operation                            | Name      | Rows  | B
      ytes | Cost (%CPU)| Time     | Pstart| Pstop |
      --------------------------------------------------------------------
      |   0 | SELECT STATEMENT                     |           |  8169 |
       175K|    29   (0)| 00:00:01 |       |       |
      |   1 |  PARTITION RANGE SINGLE              |           |  8169 |
       175K|    29   (0)| 00:00:01 |     2 |     2 |
      |   2 |   EXTERNAL TABLE ACCESS INMEMORY FULL| INMEM_TAB |  8169 |
       175K|    29   (0)| 00:00:01 |     2 |     2 |
      --------------------------------------------------------------------
      
      9 rows selected.
      
      SQL>
      SQL> EXPLAIN PLAN FOR SELECT * FROM hyptext.inmem_tab PARTITION (CENT20);
      
      Explained.
      
      SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
      
      PLAN_TABLE_OUTPUT
      --------------------------------------------------------------------
      Plan hash value: 938963152
      --------------------------------------------------------------------
      | Id  | Operation                   | Name      | Rows  | Bytes | Co
      st (%CPU)| Time     | Pstart| Pstop |
      --------------------------------------------------------------------
      |   0 | SELECT STATEMENT            |           |  8169 |   175K|
       29   (0)| 00:00:01 |       |       |
      |   1 |  PARTITION RANGE SINGLE     |           |  8169 |   175K|
       29   (0)| 00:00:01 |     3 |     3 |
      |   2 |   EXTERNAL TABLE ACCESS FULL| INMEM_TAB |  8169 |   175K|
       29   (0)| 00:00:01 |     3 |     3 |
      --------------------------------------------------------------------
      
      9 rows selected.
      
      SQL>

      アクセス・パスには、TABLE ACCESS HYBRID PART INMEMORY FULL (NO INMEMORYおよびINMEMORYアクセス対象セグメント)または選択した外部パーティションのEXTERNAL TABLE ACCESS INMEMORY FULL (INMEMORY)または選択した外部パーティションのEXTERNAL TABLE ACCESS FULL (NO INMEMORY)のいずれかが表示されます。

    5. HYPTEXT.INMEM_TAB表を削除します。
      SQL> DROP TABLE HYPTEXT.INMEM_TAB PURGE;
      
      Table dropped.
      
      SQL> EXIT
      $