Guest User

Untitled

a guest
Jul 25th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. PHIL@PHILL11G2 > CREATE TABLE ranges
  2.   2  (
  3.   3  startr VARCHAR(8),
  4.   4  endr VARCHAR(8)
  5.   5  );
  6.  
  7. TABLE created.
  8.  
  9. PHIL@PHILL11G2 > INSERT INTO ranges ( SELECT  UTL_RAW.CAST_FROM_BINARY_INTEGER((object_id*10)), UTL_RAW.CAST_FROM_BINARY_INTEGER((object_id*10)+7) FROM dba_objects);
  10.  
  11. 72286 ROWS created.
  12.  
  13. PHIL@PHILL11G2 > CREATE INDEX ranges_idxs ON ranges (TO_NUMBER(startr,'XXXXXXXX'));
  14.  
  15. INDEX created.
  16.  
  17. PHIL@PHILL11G2 > CREATE INDEX ranges_idxe ON ranges (TO_NUMBER(endr,'XXXXXXXX'));
  18.  
  19. INDEX created.
  20.  
  21. PHIL@PHILL11G2 > EXEC dbms_stats.gather_table_stats('PHIL','RANGES');
  22.  
  23. PL/SQL PROCEDURE successfully completed.
  24.  
  25. PHIL@PHILL11G2 > SELECT COUNT(*)
  26. FROM ranges
  27.   2    3  WHERE (TO_NUMBER(startr,'XXXXXXXX') < &new_end) AND (TO_NUMBER(endr,'XXXXXXXX') > &new_start);
  28. Enter VALUE FOR new_end: 200
  29. Enter VALUE FOR new_start: 100
  30. old   3: WHERE (TO_NUMBER(startr,'XXXXXXXX') < &new_end) AND (TO_NUMBER(endr,'XXXXXXXX') > &new_start)
  31. NEW   3: WHERE (TO_NUMBER(startr,'XXXXXXXX') < 200) AND (TO_NUMBER(endr,'XXXXXXXX') > 100)
  32.  
  33.   COUNT(*)
  34. ----------
  35.     10
  36.  
  37. PHIL@PHILL11G2 > EXPLAIN PLAN FOR
  38.   2  SELECT COUNT(*)
  39.   3  FROM ranges
  40.   4  WHERE (TO_NUMBER(startr,'XXXXXXXX') < &new_end) AND (TO_NUMBER(endr,'XXXXXXXX') > &new_start);
  41. Enter VALUE FOR new_end: 200
  42. Enter VALUE FOR new_start: 100
  43. old   4: WHERE (TO_NUMBER(startr,'XXXXXXXX') < &new_end) AND (TO_NUMBER(endr,'XXXXXXXX') > &new_start)
  44. NEW   4: WHERE (TO_NUMBER(startr,'XXXXXXXX') < 200) AND (TO_NUMBER(endr,'XXXXXXXX') > 100)
  45.  
  46. Explained.
  47.  
  48. PHIL@PHILL11G2 > SELECT * FROM TABLE(dbms_xplan.display);
  49.  
  50. PLAN_TABLE_OUTPUT
  51. ------------------------------------------------------------------------------------------------------------------------------------
  52. PLAN hash VALUE: 790546767
  53.  
  54. --------------------------------------------------------------------------------------------
  55. | Id  | Operation            | Name    | ROWS  | Bytes | COST (%CPU)| TIME     |
  56. --------------------------------------------------------------------------------------------
  57. |   0 | SELECT STATEMENT         |         |     1 |    10 |     3   (0)| 00:00:01 |
  58. |   1 |  SORT AGGREGATE          |         |     1 |    10 |        |      |
  59. |*  2 |   TABLE ACCESS BY INDEX ROWID| RANGES      |    17 |   170 |     3   (0)| 00:00:01 |
  60. |*  3 |    INDEX RANGE SCAN      | RANGES_IDXS |    17 |       |     2   (0)| 00:00:01 |
  61. --------------------------------------------------------------------------------------------
  62.  
  63. Predicate Information (IDENTIFIED BY operation id):
  64. ---------------------------------------------------
  65.  
  66.    2 - filter(TO_NUMBER("ENDR",'XXXXXXXX')>100)
  67.    3 - ACCESS(TO_NUMBER("STARTR",'XXXXXXXX')<200)
  68.  
  69. 16 ROWS selected.
  70.  
  71. PHIL@PHILL11G2 >
Add Comment
Please, Sign In to add comment