0
DATABASE INDEX
Sql Server, Mysql, Oracle
Database Without Index
 Lets assume Sql Server, MySql and Oracle doesn’t
support Index.
 How to handle this siltation?
...
Benefit of In Built Index
 Data synchronization
 When data is inserted in the table, same data is also
inserted into the...
How To Create Indexes?
CREATE TABLE tblEmployee(
ntEmployeeID BIGINT PRIMARY KEY,
vcEmpName VARCHAR(200),
dtDoj DATETIME,
...
Common Misconception
 Table design doesn’t decide index.
 It may help some extent .
 Primary key should be primary inde...
Where To Start?
 OLAP (Online Analytical Processing)
 OLTP (Online Transaction Processing)
 What data is needed from a ...
How To Know What Queries Are Executing ?
 Find out all the in-lines queries.
 Find out all the queries from stored proce...
Steps To Create Indexes
 Identify the application nature(OLAP OLTP)
 OLAP: Create index if necessary.
 OLTP: Create ind...
Rule 1
 Create indexes on a table if the queries which fetch data
from a table have at least following clauses:
Clause Lo...
Rule 2
 Create index on the fields in which data are filtered only using
following operators in WHERE clause, ON clause a...
Rule 3
 Don't create indexes on the columns which are
expression in the query.
 We will discuss later how to create inde...
Order of column name in an index
 Index 1:
CREATE INDEX NCI_a_b ON tblEmployee(a,b)
 Index 2:
CREATE INDEX NCI_b_a ON tb...
Rule 4
 Try to avoid creating single column indexes if
multi column index is possible.
 If we are creating multi column ...
Rule 5
 Keep the all columns with equality operator first.
 One columns with range operators is allowed .
 If columns w...
Rule 6
 If there are two columns with equality operator
then column which has most number of distinct
values should be in...
Upcoming SlideShare
Loading in...5
×

Database index

201

Published on

How to create indexes. Where to start and best practices

Published in: Software, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
201
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Database index"

  1. 1. DATABASE INDEX Sql Server, Mysql, Oracle
  2. 2. Database Without Index  Lets assume Sql Server, MySql and Oracle doesn’t support Index.  How to handle this siltation?  Why Indexes has introduced in the database?
  3. 3. Benefit of In Built Index  Data synchronization  When data is inserted in the table, same data is also inserted into the index.  When data is deleted from the table same, data is also deleted from the index.  When data is updated in the table, same data is also updated in the index.
  4. 4. How To Create Indexes? CREATE TABLE tblEmployee( ntEmployeeID BIGINT PRIMARY KEY, vcEmpName VARCHAR(200), dtDoj DATETIME, btGender BIT, vcSkill VARCHAR(2000), moSalary MONEY, ntHirarchyID BIGINT )
  5. 5. Common Misconception  Table design doesn’t decide index.  It may help some extent .  Primary key should be primary index (Clustered index) of a table.  All tables should have a clustered index on a primary key column
  6. 6. Where To Start?  OLAP (Online Analytical Processing)  OLTP (Online Transaction Processing)  What data is needed from a table?  What queries are executing on a table?
  7. 7. How To Know What Queries Are Executing ?  Find out all the in-lines queries.  Find out all the queries from stored procedures and database functions.  Use DMVS or metadata tables to get queries.
  8. 8. Steps To Create Indexes  Identify the application nature(OLAP OLTP)  OLAP: Create index if necessary.  OLTP: Create index if very necessary.  OLAP + OLTP  Sort the all queries on the base of frequency of execution and query execution time.
  9. 9. Rule 1  Create indexes on a table if the queries which fetch data from a table have at least following clauses: Clause Logical Processing Order ON 1 WHERE 2 GROUP BY 3 HAVING 4 ORDER BY 5 DISTINCT 6 UNION NA EXCEPT NA INTERSECT NA
  10. 10. Rule 2  Create index on the fields in which data are filtered only using following operators in WHERE clause, ON clause and HAVING clause: Operator Type = Equality < Range > Range <= Range >= Range IN Range BETWEEN Range LIKE Range
  11. 11. Rule 3  Don't create indexes on the columns which are expression in the query.  We will discuss later how to create indexes of such predicates.
  12. 12. Order of column name in an index  Index 1: CREATE INDEX NCI_a_b ON tblEmployee(a,b)  Index 2: CREATE INDEX NCI_b_a ON tblEmployee(b,a)  Here index NCI_a_b and NCI_b_a are two totally different indexes.
  13. 13. Rule 4  Try to avoid creating single column indexes if multi column index is possible.  If we are creating multi column index, keep columns order according to logical order of processing of different clauses.
  14. 14. Rule 5  Keep the all columns with equality operator first.  One columns with range operators is allowed .  If columns with range operator has not included then only columns in GROUP BY Clause or ORDER BY clause should be included.
  15. 15. Rule 6  If there are two columns with equality operator then column which has most number of distinct values should be included first.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×