Indexes are used to quickly locate data in tables and views, improving query performance by avoiding full table scans. There are various types of indexes including clustered, non-clustered, unique, and filtered, each with specific characteristics and uses. Clustered indexes determine the physical order of data and a table can only have one, while non-clustered indexes store data separately and can have multiple instances.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
18 views14 pages
Indexes
Indexes are used to quickly locate data in tables and views, improving query performance by avoiding full table scans. There are various types of indexes including clustered, non-clustered, unique, and filtered, each with specific characteristics and uses. Clustered indexes determine the physical order of data and a table can only have one, while non-clustered indexes store data separately and can have multiple instances.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 14
INDEXES
WHAT IS INDEX?
INDEXES ARE USED BY QUERY TO FIND DATA FROM TABLE
QUICKLY. INDEXES ARE CREATED ON TABLES AND VIEWS. INDEX ON A TABLE OR VIEW IS VERY MUCH SIMILAR TO AN INDEX THAT WE FIND IN A BOOK. ADVANTAGE OF INDEX?
THE EXISTENCE OF RIGHT INDEX CAN DRASTICALLY
IMPROVE THE PERFORMANCE OF THE QUERY. IF THERE IS NO INDEX TO HELP THE QUERY, THEN THE QUERY ENGINE CHECK EVERY ROW IN THE TABLE FROM THE BEGINNING TO THE END. THIS IS CALLED TABLE SCAN. BUT TABLE SCAN IS NOT A GOOD PRACTICE. IT REDUCES THE QUERY PERFORMANCE SPEED. WHY INDEXING
CONSIDER THE FOLLOWING TABLE….
IF WE WRITE A QUERY LIKE
NOW IF WE WANT TO FIND SALARY
BETWEEN 5000 TO 7000 THEN WE HAVE TO SCAN THE ENTIRE
TABLE. BECAUSE OUR SALARY COLUMN IS NOT SORTED. WHY INDEXING
NOW IF WE CREATE A INDEX ON SALARY COLUMN IN
ASCENDING ORDER THEN THE IT WILL WORK LIKE THIS…. CNTD..
TO FIND IF THERE IS ANY INDEX ON A SPECIFIC TABLE OR
VIEW WE HAVE A BUILT-IN FUNCTION CALLED SP_HELPINDEX SYNTAX IS : SP_HELPINDEX TBLEMPLOYEE WE CAN ALSO CREATE INDEX USING THE DESIGNER. TO DROP THE INDEX THE SYNTAX IS DROP INDEX TBLEMPLOYEE.IX_TBLEMPLOYEE_SALARY TYPES OF INDEXES
CLUSTERED NON CLUSTERED UNIQUE FILTERED XML FULL TEXT ETC. CLUSTERED INDEX
CLUSTERED INDEX DETERMINES THE PHYSICAL
ORDER OF DATA IN A TABLE. A TABLE CAN HAVE ONLY ONE CLUSTERED INDEX. WHENEVER WE CREATE A TABLE HAVING SET THE PRIMARY KEY THEN BY DEFAULT A CLUSTERED INDEX IS CREATED. CLUSTERED INDEX
NOTE THAT HERE ID ARE NOT IN SEQUENTIAL ORDER
BUT WHEN WE WRITE
SELECT * FROM TBLEMPLOYEE OUTPUT WILL BE LIKE….
LOOK AT THE ID COLUMN IT IS IN SEQUENTIAL ORDER
CLUSTERED INDEX
CREATING A COMPOSITE CLUSTERED INDEX
NOW THE OUTPUT WILL BE
CNTD.. BUT WHEN WE TRY TO CREATE ANOTHER CLUSTERED INDEX IT WILL GIVE A ERROR MESSAGE BCZ THERE IS ALREADY AN EXISTING CLUSTERED INDEX THERE. SO FIRST DELETE THE PREVIOUS CLUSTERED INDEX. BUT WHEN WE TRY TO DELETE THE PREVIOUS CLUSTERED INDEX USING DROP STATEMENT, IT WILL SHOW AN ERROR MESSAGE. TO DELETE THIS WE CAN NOW USE THE DESIGNER MODE. NON CLUSTERED INDEX A NON CLUSTERED INDEX IS ANALOGOUS TO AN INDEX IN A TEXTBOOK. THE DATA IS STORED IN ONE PLACE, THE INDEX IN ANOTHER PLACE. THE INDEX WILL HAVE POINTERS TO THE STORAGE LOCATION OF THE DATA. NON CLUSTERED INDEX
HOW STORED:
N.B. IN NON CLUSTERED INDEX
INDEXES ARE STORES SEPARATELY AND IT USE POINTER TO ACCESS THAT ADDRESS. DIFFERENCE BETWEEN CLUSTERED AND NON CLUSTERED INDEX
ONE CLUSTER INDEX PER TABLE, NON CLUSTER CAN HAVE
MANY. CLUSTER INDEX IS LITTLE FASTER. CLUSTER INDEX DETERMINES THE STORAGE ORDER OF ROWS IN THE TABLE, AND HENCE DOESN’T REQUIRE ADDITIONAL DISK SPACE. BUT WHERE AS A NON CLUSTERED INDEX IS STORED SEPARATELY FROM THE TABLE, SO ADDITIONAL STORAGE SPACE REQUIRED.