Using Oracle function indexes is undoubtedly an effective way to improve query efficiency. The following describes how to use Oracle function indexes in detail.
When talking about any operations on columns, full table scan may occur, for example:
- select * from emp where substr(ename,1,2)=’SM’;
However, this type of query is frequently used in the customer service system. We can create an Oracle function index with the substr function,
- create index emp_ename_substr on eemp ( substr(ename,1,2) );
However, this type of query is frequently used in the customer service system. We can create an Oracle function index with the substr function,
- create index emp_ename_substr on eemp ( substr(ename,1,2) );
In this way, when the preceding query statement is executed, this function-based INDEX will be used, and the Execution Plan will be index range scan ).
In the above example, we have created a function-based index, but if you execute the following query:
- select * from emp where substr(ename,1,1)=’S’
The execution plan is still table access full), because the function-based index takes effect only when the data column can be equality matched, in this way, the requirements for the planning and maintenance of such indexes are high. Note that adding an index to a table is very dangerous because it will lead to many changes to the query execution plan. However, if we use a function-based index, this issue will not occur because Oracle uses this type of index only when matching built-in functions are used for queries.
Implementation of oracle function return table
Learn about the Oracle FBI Index
How to uninstall an Oracle database in Windows
Multiple table Connection Methods in Oracle
Example of using SQL recursive statements in oracle