乐趣区

关于oracle:Oracle-Clob-类型检索比较

明天做了几个 Clob 类型数据的检索比拟,后果如下:

  1. Like 形式检索
    set timing on
    set lin 150 pages 999
    set autotrace traceonly
    select * from lob_tbl where upper(c) LIKE '%2022-04-01 02:05:31.709329%';
    
    経過: 00:00:02.24
    
    実行計画
    ----------------------------------------------------------
    Plan hash value: 1723626472
    
    -----------------------------------------------------------------------------
    | Id  | Operation         | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
    -----------------------------------------------------------------------------
    |   0 | SELECT STATEMENT  |         |     1 |  4017 |     3   (0)| 00:00:01 |
    |*  1 |  TABLE ACCESS FULL| LOB_TBL |     1 |  4017 |     3   (0)| 00:00:01 |
    -----------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       1 - filter(UPPER("C") LIKE '%2022-04-01 02:05:31.709329%')
    
    Note
    -----
       - dynamic sampling used for this statement (level=2)
    
    
    統計
    ----------------------------------------------------------
             10  recursive calls
         335256  db block gets
         128501  consistent gets
          28998  physical reads
            124  redo size
           2368  bytes sent via SQL*Net to client
           1819  bytes received via SQL*Net from client
              7  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed
          
  1. dbms_lob.instr 形式检索

     alter system flush buffer_cache;
     select * from lob_tbl where dbms_lob.instr(c,'2022-04-01 02:05:31.70932')>0;
     
     経過: 00:00:00.18
     
     実行計画
     ----------------------------------------------------------
     Plan hash value: 1723626472
     
     -----------------------------------------------------------------------------
     | Id  | Operation         | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
     -----------------------------------------------------------------------------
     |   0 | SELECT STATEMENT  |         |     1 |  4017 |     3   (0)| 00:00:01 |
     |*  1 |  TABLE ACCESS FULL| LOB_TBL |     1 |  4017 |     3   (0)| 00:00:01 |
     -----------------------------------------------------------------------------
     
     Predicate Information (identified by operation id):
     ---------------------------------------------------
     
        1 - filter("DBMS_LOB"."INSTR"("C",'2022-04-01 02:05:31.70932')>0)
     
     Note
     -----
        - dynamic sampling used for this statement (level=2)
     
    
    統計
    ----------------------------------------------------------
            633  recursive calls
              0  db block gets
          47809  consistent gets
          14554  physical reads
              0  redo size
           2368  bytes sent via SQL*Net to client
           1819  bytes received via SQL*Net from client
              7  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed
  1. Text 形式检索

     CREATE INDEX Content_Tbl_Index ON lob_tbl (c) INDEXTYPE IS CTXSYS.CONTEXT;
     
     alter system flush buffer_cache;
     select * from lob_tbl where contains(c,'%2022-04-01 02:05:31.70932%')>0;
     
     経過: 00:00:00.11
     
     実行計画
     ----------------------------------------------------------
     Plan hash value: 1854112279
     
     -------------------------------------------------------------------------------------------------
     | Id  | Operation                   | Name              | Rows  | Bytes | Cost (%CPU)| Time     |
     -------------------------------------------------------------------------------------------------
     |   0 | SELECT STATEMENT            |                   |     1 |  4029 |     4   (0)| 00:00:01 |
     |   1 |  TABLE ACCESS BY INDEX ROWID| LOB_TBL           |     1 |  4029 |     4   (0)| 00:00:01 |
     |*  2 |   DOMAIN INDEX              | CONTENT_TBL_INDEX |       |       |     4   (0)| 00:00:01 |
     -------------------------------------------------------------------------------------------------
     
     Predicate Information (identified by operation id):
     ---------------------------------------------------
     
        2 - access("CTXSYS"."CONTAINS"("C",'%2022-04-01 02:05:31.70932%')>0)
     
     Note
     -----
        - dynamic sampling used for this statement (level=2)
     
    
    統計
    ----------------------------------------------------------
           2426  recursive calls
              0  db block gets
           5753  consistent gets
           2632  physical reads
              0  redo size
            615  bytes sent via SQL*Net to client
            524  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
            221  sorts (memory)
              0  sorts (disk)
              0  rows processed
    
退出移动版