How does Oracle make the index invalid?
Jan 26, 2022 am 10:25 AMCauses of oracle index failure: 1. Not using the WHERE clause; 2. Using "IS NULL" and "IS NOT NULL"; 3. Using functions in the WHERE clause; 4. Using LIKE for fuzzy Query; 5. Use the inequality operation in the WHERE clause; 6. Compare unmatched data types, etc.
The operating environment of this tutorial: Windows 10 system, Oracle 11g version, Dell G3 computer.
How oracle will make the index invalid
The goal of Oracle index is to avoid full table scan and improve query efficiency, but sometimes it is counterproductive.
For example, there are millions of pieces of data in a table, and an index is added to a certain field, but the query performance does not improve. This may be caused by the failure of the Oracle index. Oracle indexes have some restrictions. If you violate these index restrictions, even if you have added an index, Oracle will still perform a full table scan. The query performance will not be improved compared to not adding an index. Instead, it may be due to the database The system overhead of maintaining the index results in worse performance. The following is a summary of the seven constraints that can cause Oracle indexes to fail.
1. No WHERE clause
2. Use IS NULL and IS NOT NULL
SELECT ... FROM emp WHERE comm IS NULL; The index on the comm column will be invalid
3. Use the function in the WHERE clause
If no function-based index is used, then the where clause When using functions on indexed columns, the optimizer will ignore these indexes. For example:
select * from staff where trunc(birthdate) = '01-MAY-82';
But when the function is applied to the condition, the index can take effect. If you change the above statement to the following statement, you can search through the index.
select * from staff where birthdate < (to_date('01-MAY-82') + 0.9999);
Note: Oracle still uses indexes for MIN, MAX functions.
4. Use LIKE '%T' for fuzzy query
5. Use the inequality operation in the WHERE clause
Not equal to operations include: <>, !=, NOT colum >= ?, NOT colum <= ?
This restriction can be replaced by OR, for example: colum <> 0 ===> colum>0 OR colum<0
6. Equal and range indexes will not be combined.
SELECT emp_id, emp_m, salary_q ... FROM emp WHERE job='manager' AND deptno>10
job and deptno are both non-unique indexes. Oracle will not merge indexes under this condition, it will only use the first index.
7. Comparison does not match the data type
dept_id is a varchar2 field. There is an index on this field, but the following statement will perform a full table scan.
select * from dept where dept_id = 900198;
This is because Oracle will automatically convert the where clause into to_number(dept_id)=900198, which is equivalent to using a function, which limits the use of indexes. The correct way to write it is as follows:
select * from dept where dept_id = '900198';
Recommended tutorial: "Oracle Video Tutorial"
The above is the detailed content of How does Oracle make the index invalid?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

To safely and thoroughly uninstall MySQL and clean all residual files, follow the following steps: 1. Stop MySQL service; 2. Uninstall MySQL packages; 3. Clean configuration files and data directories; 4. Verify that the uninstallation is thorough.

Oracle is not only a database company, but also a leader in cloud computing and ERP systems. 1. Oracle provides comprehensive solutions from database to cloud services and ERP systems. 2. OracleCloud challenges AWS and Azure, providing IaaS, PaaS and SaaS services. 3. Oracle's ERP systems such as E-BusinessSuite and FusionApplications help enterprises optimize operations.

In Oracle, the FOR LOOP loop can create cursors dynamically. The steps are: 1. Define the cursor type; 2. Create the loop; 3. Create the cursor dynamically; 4. Execute the cursor; 5. Close the cursor. Example: A cursor can be created cycle-by-circuit to display the names and salaries of the top 10 employees.

Building a Hadoop Distributed File System (HDFS) on a CentOS system requires multiple steps. This article provides a brief configuration guide. 1. Prepare to install JDK in the early stage: Install JavaDevelopmentKit (JDK) on all nodes, and the version must be compatible with Hadoop. The installation package can be downloaded from the Oracle official website. Environment variable configuration: Edit /etc/profile file, set Java and Hadoop environment variables, so that the system can find the installation path of JDK and Hadoop. 2. Security configuration: SSH password-free login to generate SSH key: Use the ssh-keygen command on each node

MongoDB is suitable for handling large-scale unstructured data, and Oracle is suitable for enterprise-level applications that require transaction consistency. 1.MongoDB provides flexibility and high performance, suitable for processing user behavior data. 2. Oracle is known for its stability and powerful functions and is suitable for financial systems. 3.MongoDB uses document models, and Oracle uses relational models. 4.MongoDB is suitable for social media applications, while Oracle is suitable for enterprise-level applications.

MongoDB is suitable for unstructured data and high scalability requirements, while Oracle is suitable for scenarios that require strict data consistency. 1.MongoDB flexibly stores data in different structures, suitable for social media and the Internet of Things. 2. Oracle structured data model ensures data integrity and is suitable for financial transactions. 3.MongoDB scales horizontally through shards, and Oracle scales vertically through RAC. 4.MongoDB has low maintenance costs, while Oracle has high maintenance costs but is fully supported.

Configuring WebLogic database connection on a CentOS system requires the following steps: JDK installation and environment configuration: Make sure that the server has installed a JDK that is compatible with the WebLogic version (for example, WebLogic14.1.1 usually requires JDK8). Correctly set JAVA_HOME, CLASSPATH and PATH environment variables. WebLogic installation and decompression: Download the WebLogic installation package for CentOS system from the official Oracle website and unzip it to the specified directory. WebLogic user and directory creation: Create a dedicated WebLogic user account and set a security password

Oracle views can be exported through the EXP utility: Log in to the Oracle database. Start the EXP utility, specifying the view name and export directory. Enter export parameters, including target mode, file format, and tablespace. Start exporting. Verify the export using the impdp utility.
