Open In App

Index in PL/SQL

Last Updated : 23 Oct, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

PL/SQL, Oracle's extension to SQL, combines SQL with procedural programming features like loops, conditionals, and exception handling. It enables developers to create stored procedures, functions, triggers, and other database applications. As a block-structured language, PL/SQL allows seamless integration of SQL with procedural code, enhancing the capabilities of Oracle Database development

In the Structured Query Language (SQL), understanding the concept of indexes is crucial for efficient database management. An index plays an important role in enhancing query performance by providing a quick and direct path to the data. In this article, we will be discussing what an index is in Oracle PL/SQL and how it works, exploring its significance, syntax, and practical examples to learn the concept of index deeply.

What is a PL/SQL Index?

An index in PL/SQL is a database object designed for instant access to data rows from the database. It functions the same as an index of a book, enabling easy navigation to specific information without wasting the time to scan the entire database for specific data.

Types of PL/SQL Indexes

Indexes can be classified into several types, each serving different purposes to optimize database performance:

  • Single Column Index: Created on a single column of a table
  • Composite Index: An index on multiple columns
  • Unique Index: Ensures that the indexed column has unique values.
  • Clustered Index: Arranges the data rows in the table according to the index order.

Above are a few types of indexes in PL/SQL, there are many types of indexes in PL/SQL for various purposes to improve database management.

How to Create an Index in PL/SQL

In procedural language/structured query language the syntax of creating the index is as follows

Syntax:

CREATE INDEX Index_Name ON Table_Name ( Column_Name);  

Here,

  • Index_Name: This is just the name we give to the index we want to create.
  • Table_Name: This refers to the name of the table in a database where you want to create the index.
  • Column_Name: This is the specific column within the table where you want to create the index.

You can also create composite indexes by specifying multiple columns.

Composite Index Syntax:

CREATE INDEX index_name ON table_name (column1, column2, ...);

Examples of Index in PL/SQL

Example 1: Creating, Displaying, and Deleting and Managing Index in PL/SQL

Let's create an index on the Students table to improve the performance of queries that filter by Stud_ID:

Stud_ID

Stud_Name

Stud_Gender

Stud_Class

Stud_City

Stud_State

2001

Sahil

M

5TH

Pune

Maharashtra

2002

Kunal

M

5TH

Pune

Maharashtra

2003

Purva

F

10TH

Mumbai

Maharashtra

2004

Rahul

M

9TH

Karmala

Maharashtra

Creating Index: We will create the index with name idx_stud_ID on the column Stud_ID of table students of the database.

CREATE INDEX idx_Stud_ID ON Students(Stud_ID);

Output:

Creating Index
Creating Index on students table

Display Created Index from Database: We can see the created Index by using following query in PL/SQL.

SHOW INDEX FROM Students;

Output:

Show Index
Display the created index

Deleting the Created Index: Sometimes user need to delete the index, So index can be deleted/dropped using following PL/SQL query.

DROP INDEX idx_Stud_ID ON Students;

Output:

Deleting the Created Index
Dropping the created Index From the table

Explanation: In this example, we show how to create, view, and delete an index called idx_stud_ID on Stud_ID column in the “Students” table of a database. The following PL/SQL queries show how to improve database performance by index management, and provide insight into how indexing works in Oracle Database.

Example 2: Index Management in the Employee Table

Consider the following Student Table of the database:

Emp_ID

Emp_Name

Emp_Gender

Emp_Department

Emp_City

Emp_State

1001

Sahil

M

IT

Nagpur

Maharashtra

1002

Sam

F

HR

Barshi

Maharashtra

1003

Mia

M

Finance

Baramati

Maharashtra

1004

Ajay

F

Marketing

Pune

Maharashtra

Creating Index: This query will create an index named idx_Emp_ID on the Emp_ID column of the Employee table.

CREATE INDEX idx_Emp_ID ON Employee(Emp_ID);

Output:

Example-2-creating-index
Ex. 2 Creating Index in Employee DB

Deleting the Created Index: Sometimes user need to delete the index, So index can be deleted/dropped using following PL/SQL query.

DROP INDEX idx_Emp_ID ON Employee;

Output:

Example-2-Drop-Index
Ex.2 Dropping the Created index

Explanation: In the following example, we show how to create and delete an index called idx_Empire_ID on Emp_ID in the “Employee” column of a database. These PL/SQL queries illustrate how to optimize database performance through effective index management, and provide practical insights into how indexing works in Oracle Database.

Advantages of Using Indexes in PL/SQL

  1. Improves Query Performance: Indexes helps the database to find the rows that matches the given requirement/query, which can significantly improve the performance of search queries.
  2. Easier Data Maintenance: Indexes helps the database to maintain specific type of data in databases such as sorted and unique data values.
  3. Improve Concurrency: Indexes improve the concurrency of databases as they reduce the amount of locking and blocking that occurs while multiple transactions request/access the same data.

Disadvantages of Using Indexes in PL/SQL

  1. Increases Storage of Database: Indexes increases the storage overhead of database as they requires the additional storage to save the indexes data. This additional data results into increase in storage of the database.
  2. Increases Maintenance of Database: Indexes need to be regularly checked and updated to make sure they work well with the queries used in a database. This extra work results into the increase in Maintenance of database.
  3. Increased query complexity: Sometimes Indexes can make the Query execution complex due to the considering the multiple execution plans and choosing shortest one from database to achieve the result.

Conclusion

Understanding indexes in Oracle PL/SQL can help users manage and utilize databases efficiently. In this article, we explore various aspects of indexes, such as their meaning and How they actually works, with the help of two examples. Additionally, we learned the important advantages and disadvantages of PL/SQL indexes.


Next Article
Article Tags :

Similar Reads