Advertisement
tmmdv

UPPER

Oct 30th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.01 KB | None | 0 0
  1. DROP TABLE t1 cascade constraints purge;
  2. CREATE TABLE t1 (
  3.   id INT,
  4.   usr_name varchar2(30) NOT NULL,
  5.   pad varchar2(2000) DEFAULT lpad('x', 2000, 'x') NOT NULL,
  6.     CONSTRAINT t1_pk PRIMARY KEY (id)
  7. );
  8.  
  9. EXEC dbms_random.seed(0);
  10.  
  11. INSERT INTO t1 (id, usr_name)
  12. SELECT
  13.   rownum,
  14.   dbms_random.string('a', 15)
  15. FROM
  16.   dual
  17. CONNECT BY level <= 10000
  18. ;
  19.  
  20. CREATE INDEX t1_indx ON t1(id, UPPER(usr_name));
  21. --create index t1_indx on t1(upper(usr_name));
  22.  
  23. EXEC dbms_stats.gather_table_stats(NULL, 't1', method_opt=>'for all columns size 1')
  24.  
  25. EXPLAIN plan FOR SELECT * FROM t1 WHERE id BETWEEN :1 AND :2 AND usr_name = :1;
  26. SELECT * FROM TABLE(dbms_xplan.display);
  27.  
  28. /*
  29. explain plan for select * from t1 where usr_name = :1;
  30. select * from table(dbms_xplan.display);
  31.  
  32. explain plan for select * from t1 where usr_name = upper(:1);
  33. select * from table(dbms_xplan.display);
  34.  
  35. explain plan for select * from t1 where upper(usr_name) = :1;
  36. select * from table(dbms_xplan.display);
  37. */
  38.  
  39. /*
  40. Plan hash value: 3418820351
  41.  
  42. ----------------------------------------------------------------------------------------------
  43. | Id  | Operation                            | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
  44. ----------------------------------------------------------------------------------------------
  45. |   0 | SELECT STATEMENT                     |       |     1 |  2021 |    18   (0)| 00:00:01 |
  46. |*  1 |  FILTER                              |       |       |       |            |          |
  47. |*  2 |   TABLE ACCESS BY INDEX ROWID BATCHED| T1    |     1 |  2021 |    18   (0)| 00:00:01 |
  48. |*  3 |    INDEX RANGE SCAN                  | T1_PK |    45 |       |     2   (0)| 00:00:01 |
  49. ----------------------------------------------------------------------------------------------
  50.  
  51. Predicate Information (identified by operation id):
  52. ---------------------------------------------------
  53.  
  54.    1 - filter(TO_NUMBER(:2)>=TO_NUMBER(:1))
  55.    2 - filter("USR_NAME"=:1)
  56.    3 - access("ID">=TO_NUMBER(:1) AND "ID"<=TO_NUMBER(:2))
  57. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement