oracle實驗記錄 (函式index)
要求
QUERY_REWRITE_ENABLED=TRUE和QUERY_REWRITE_INTEGRITY=RUSTED
SQL> create table test (a varchar2(5));
Table created.
1 declare
2 begin
3 for i in 1..100 loop
4 insert into test values ('a');
5 end loop;
6 commit;
7* end;
SQL> explain plan for select * from test where upper(a)='A';
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 3836831076
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 100 | 400 | 2 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| TEST | 100 | 400 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
1 - filter(UPPER("A")='A')**********************************
Note
-----
- dynamic sampling used for this statement ~~動態採集
SQL> create index test_fun on test(upper(a));
Index created.
SQL> explain plan for select * from test where upper(a)='A';
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 1975250114
--------------------------------------------------------------------------------
--------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Ti
me |
--------------------------------------------------------------------------------
--------
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 100 | 400 | 1 (0)| 00
:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| TEST | 100 | 400 | 1 (0)| 00
:00:01 |
|* 2 | INDEX RANGE SCAN | TEST_FUN | 1 | | 1 (0)| 00
:00:01 |
--------------------------------------------------------------------------------
--------
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access(UPPER("A")='A')************************
Note
-----
- dynamic sampling used for this statement
18 rows selected.
SQL> select file_id,extent_id,block_id,blocks from dba_extents where segment_nam
e='TEST_FUN';
FILE_ID EXTENT_ID BLOCK_ID BLOCKS
---------- ---------- ---------- ----------
1 0 57393 8
SQL> alter system dump datafile 1 block 57394;
System altered.
row#0[8025] flag: ------, lock: 0, len=11
col 0; len 1; (1): 41
col 1; len 6; (6): 00 40 dd 7a 00 00~~~~~~~~~有6字的rowid
節的rowid
row#1[8014] flag: ------, lock: 0, len=11
col 0; len 1; (1): 41
col 1; len 6; (6): 00 40 dd 7a 00 01
row#2[8003] flag: ------, lock: 0, len=11
col 0; len 1; (1): 41
col 1; len 6; (6): 00 40 dd 7a 00 02
row#3[7992] flag: ------, lock: 0, len=11
col 0; len 1; (1): 41
col 1; len 6; (6): 00 40 dd 7a 00 03
row#4[7981] flag: ------, lock: 0, len=11
SQL> select chr(to_number(41,'xxxx')) from dual;
CH
--
A~~~~~~~~~~~~~~函式計算後的值存index中 成為一個虛擬列
函式index對 inser,update有影響 對應更新index有麻煩
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-611375/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Golang 常用函式記錄Golang函式
- PostgreSQLSRF(set-returningfunctions)函式where,index實現SQLFunction函式Index
- mysql 函式substring_index()MySql函式Index
- mysql函式substring_index實現split切割效果MySql函式Index
- 函式 - Go 學習記錄函式Go
- [系列文章] 函式 - 記錄1函式
- Oracle學習筆記(6)——函式Oracle筆記函式
- oracle 函式Oracle函式
- oracle or 函式Oracle函式
- excel index match 函式怎麼用ExcelIndex函式
- MySQL函式查詢目錄樹問題記錄MySql函式
- Oracle常用函式Oracle函式
- 7 Oracle 函式Oracle函式
- Oracle 字串函式Oracle字串函式
- Oracle 字串函式Oracle字串函式
- 大資料實驗記錄大資料
- Oracle分析函式與視窗函式Oracle函式
- uboot i2c 操作函式記錄boot函式
- PHP 第三週函式學習記錄PHP函式
- PHP 第二週函式學習記錄PHP函式
- PHP 第九周函式學習記錄PHP函式
- PHP 第十週函式學習記錄PHP函式
- PHP 第七週函式學習記錄PHP函式
- PHP 第五週函式學習記錄PHP函式
- PHP 第六週函式學習記錄PHP函式
- PHP 第一週函式學習記錄PHP函式
- match函式簡單介紹以及與index函式結合應用函式Index
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式
- Oracle 自定義函式Oracle函式
- oracle 高階函式Oracle函式
- oracle json 解析函式OracleJSON函式
- Oracle 隨機函式Oracle隨機函式
- Oracle函式彙總Oracle函式
- mysql load 相關實驗記錄MySql
- [記錄] 通用封裝函式——四則運算封裝函式
- PHP 第四周函式學習記錄PHP函式
- PHP 第十一週函式學習記錄PHP函式
- PHP 第十二週函式學習記錄PHP函式
- PHP 第十三週函式學習記錄PHP函式