SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Using indexes
Index architecture
clustered
nonclustered
CREATE INDEX (T-SQL)
Useful tips
Index options
Spatial indexes

1
Index architecture

2
Index architecture

3
Index architecture (clustered)

4
Index architecture (nonclustered)

5
CREATE INDEX (T-SQL)
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX
index_name
ON <object> ( column [ ASC | DESC ] [ ,...n ] )
[ INCLUDE ( column_name [ ,...n ] ) ]
[ WHERE <filter_predicate> ]
[ WITH ( <relational_index_option> [ ,...n ] ) ]
[ ON { partition_scheme_name ( column_name )
| filegroup_name
| default
}
]
[ FILESTREAM_ON { filestream_filegroup_name |
partition_scheme_name | "NULL" } ]

!
[;]

6
CREATE INDEX (T-SQL)
<relational_index_option> ::=
{
PAD_INDEX = { ON | OFF }
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = { ON | OFF }
| IGNORE_DUP_KEY = { ON | OFF }
| STATISTICS_NORECOMPUTE = { ON | OFF }
| DROP_EXISTING = { ON | OFF }
| ONLINE = { ON | OFF }
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS = { ON | OFF }
| MAXDOP = max_degree_of_parallelism
| DATA_COMPRESSION = { NONE | ROW | PAGE}
[ ON PARTITIONS ( { <partition_number_expression> | <range> }
[ , ...n ] ) ]
}
7
Useful tips
Consider using a clustered index for queries that do the following:

!
•
•
•
•

Return a range of values by using operators such as BETWEEN, >, >=, <, and <=.
Return large result sets.
Use JOIN clauses; typically these are foreign key columns.
Use ORDER BY, or GROUP BY clauses.

•
•
•
•

Are unique or contain many distinct values
Are accessed sequentially
Defined as IDENTITY because the column is guaranteed to be unique within the table.
Used frequently to sort the data retrieved from a table.

•
•

Columns that undergo frequent changes
Wide keys

!
Consider columns that have one or more of the following attributes:
!

!
Clustered indexes are not a good choice for the following attributes:
!

8
Useful tips
Consider the characteristics of the database when designing nonclustered indexes.

!

• Databases or tables with low update requirements, but large volumes of data can benefit
from many nonclustered indexes to improve query performance. Consider creating filtered
indexes for well-defined subsets of data to improve query performance, reduce index storage
costs, and reduce index maintenance costs compared with full-table nonclustered indexes.
• Online Transaction Processing applications and databases that contain heavily updated
tables should avoid over-indexing. Additionally, indexes should be narrow, that is, with as few
columns as possible.

!
Consider using a nonclustered index for queries that have the following attributes:
!

• Use JOIN or GROUP BY clauses.
• Queries that do not return large result sets.
• Contain columns frequently involved in search conditions of a query, such as WHERE clause,
that return exact matches.

!
Consider columns that have one or more of these attributes:
!

• Cover the query.
• Lots of distinct values, such as a combination of last name and first name, if a clustered index
is used for other columns.

9
Useful tips
Query in which the
column predicate is
one of these
Exact match to a specific
value

Query description and example

Index to consider

Searches for an exact match in which the query uses the WHERE
Nonclustered or
clause to specify a column entry with a specific value. For example: clustered index on the
Id column.

! Id, [Login], Email FROM Users WHERE Id = 202
SELECT

Searches for an exact match to a value in a specified list of values.
Exact match to a value in an For example:
IN (x,y,z) list

! Id, [Login], Email FROM Users WHERE Id IN (603, 658, 1371)
SELECT

Nonclustered or
clustered index on the
Id column.

Searches for a range of values in which the query specifies any entry
that has a value between two values. For example:

Range of values

! Id, UserId, CreateDate, Content FROM Posts WHERE CreateDate
SELECT
>= '2013-03-01 12:00' AND CreateDate <= '2013-03-01 12:30‘
!
Or
! Id, UserId, CreateDate, Content FROM Posts WHERE CreateDate
SELECT

Clustered or
nonclustered index on
the CreateDate column.

BETWEEN '2013-03-01 12:00' AND '2013-03-01 12:30'

Join between tables

Searches for rows in a table that match a row in another table based
Nonclustered or
on a join predicate. For example:
clustered index on the
Id and UserId columns.
SELECT u.Id, u.[Login], p.Content

!

FROM Users u JOIN Posts p ON u.Id = p.UserId WHERE u.Id = 202

10
Useful tips
Query in which the
column predicate is
one of these
LIKE comparison

Sorted or aggregated

PRIMARY KEY or UNIQUE
constraint

Query description and example
Searches for matching rows that start with a specific character
string such as 'abc%'. For example:

! Id, [Login], Email FROM Users WHERE [Login] LIKE 'ma%'
SELECT

Nonclustered or
clustered index on the
Login column.

Nonclustered or
Requires an implicit or explicit sort order or an aggregation (GROUP clustered index on the
BY). For example:
sorted or aggregated
column.
SELECT p.Id, p.UserId, u.[Login], p.Content
For sort columns,
FROM Posts p JOIN Users u ON p.UserId = u.Id
consider specifying the
ORDER BY p.UserId, p.CreateDate
ASC or DESC order of
Searches for duplicates of new index key values in insert and update Clustered or
operations, to enforce PRIMARY KEY and UNIQUE constraints. For
nonclustered index on
example:
the column or columns

!

! Users ([Login], [Password], Email)
INSERT

VALUES ('xdfyht', 'dh4G57hn1', 'xdfyht@gmail.com')

UPDATE or DELETE operation Searches for rows in an update or delete operation in which the
in a PRIMARY KEY/FOREIGN column participates in a PRIMARY KEY/FOREIGN KEY relationship,
KEY relationship
with or without the CASCADE option.
Contains one or more columns in the select list that are not used for
searching and lookups. For example:
Column is in the select list
but not in the predicate.

Index to consider

! UserId, CreateDate, Content FROM Posts
SELECT

WHERE UserId = 202 ORDER BY CreateDate DESC

defined in the
constraint.
Nonclustered or
clustered index on the
foreign key column.
Nonclustered index with
Content specified in the
INCLUDE clause.

11
Index options (fill factor)

12
Index options (included columns)

13
Index options (filtered)
Views vs. Filtered Indexes
Allowed in expressions

Views

Filtered indexes

Computed columns

Yes

No

Joins

Yes

No

Multiple tables

Yes

No

Simple comparison logic in a predicate

Yes

Yes

Complex logic in a predicate

Yes

No

14
Spatial indexes

15
Spatial indexes

16
Spatial indexes

17
Spatial indexes

18
Spatial indexes (conditions)
•
•
•
•
•
•
•
•

geometry1.STContains(geometry2) = 1
geometry1.STDistance(geometry2) < @r
geometry1.STDistance(geometry2) <= @r
geometry1.STEquals(geometry2) = 1
geometry1.STIntersects(geometry2) = 1
geometry1.STOverlaps(geometry2) = 1
geometry1.STTouches(geometry2) = 1
geometry1.STWithin(geometry2) = 1

•
•
•
•

geography1.STEquals(geography2) = 1
geography1.STDistance(geography2) < @r
geography1.STDistance(geography2) <= @r
geography1.STIntersects(geography2) = 1
19
about:me
http://
unknowntransfer.blogspot.com
akor@ciklum.com
Skype: unknowntransfer

20

Mais conteúdo relacionado

Mais procurados

Database index by Reema Gajjar
Database index by Reema GajjarDatabase index by Reema Gajjar
Database index by Reema GajjarReema Gajjar
 
Indexes: The Second Pillar of Database Wisdom
Indexes: The Second Pillar of Database WisdomIndexes: The Second Pillar of Database Wisdom
Indexes: The Second Pillar of Database Wisdomgisborne
 
Database indexing framework
Database indexing frameworkDatabase indexing framework
Database indexing frameworkNitin Pande
 
Columnstore indexes in sql server 2014
Columnstore indexes in sql server 2014Columnstore indexes in sql server 2014
Columnstore indexes in sql server 2014Antonios Chatzipavlis
 
Sql server ___________session_17(indexes)
Sql server  ___________session_17(indexes)Sql server  ___________session_17(indexes)
Sql server ___________session_17(indexes)Ehtisham Ali
 
dotnetMALAGA - Sql query tuning guidelines
dotnetMALAGA - Sql query tuning guidelinesdotnetMALAGA - Sql query tuning guidelines
dotnetMALAGA - Sql query tuning guidelinesJavier García Magna
 
Sql server lesson6
Sql server lesson6Sql server lesson6
Sql server lesson6Ala Qunaibi
 
Database indexing techniques
Database indexing techniquesDatabase indexing techniques
Database indexing techniquesahmadmughal0312
 
9. index and index organized table
9. index and index organized table9. index and index organized table
9. index and index organized tableAmrit Kaur
 
Dynamic Data Validation Lists
Dynamic Data Validation ListsDynamic Data Validation Lists
Dynamic Data Validation ListsMarc Rivait, PMP
 
MySQL: Indexing for Better Performance
MySQL: Indexing for Better PerformanceMySQL: Indexing for Better Performance
MySQL: Indexing for Better Performancejkeriaki
 
New slides access
New slides accessNew slides access
New slides accessjooomalaga
 
Sql server 2014 x velocity – updateable columnstore indexes
Sql server 2014 x velocity – updateable columnstore indexesSql server 2014 x velocity – updateable columnstore indexes
Sql server 2014 x velocity – updateable columnstore indexesPat Sheehan
 
Tunning sql query
Tunning sql queryTunning sql query
Tunning sql queryvuhaininh88
 
Dynamic Publishing with Arbortext Data Merge
Dynamic Publishing with Arbortext Data MergeDynamic Publishing with Arbortext Data Merge
Dynamic Publishing with Arbortext Data MergeClay Helberg
 

Mais procurados (20)

Database index by Reema Gajjar
Database index by Reema GajjarDatabase index by Reema Gajjar
Database index by Reema Gajjar
 
Indexes: The Second Pillar of Database Wisdom
Indexes: The Second Pillar of Database WisdomIndexes: The Second Pillar of Database Wisdom
Indexes: The Second Pillar of Database Wisdom
 
Database indexing framework
Database indexing frameworkDatabase indexing framework
Database indexing framework
 
Columnstore indexes in sql server 2014
Columnstore indexes in sql server 2014Columnstore indexes in sql server 2014
Columnstore indexes in sql server 2014
 
Sql server ___________session_17(indexes)
Sql server  ___________session_17(indexes)Sql server  ___________session_17(indexes)
Sql server ___________session_17(indexes)
 
dotnetMALAGA - Sql query tuning guidelines
dotnetMALAGA - Sql query tuning guidelinesdotnetMALAGA - Sql query tuning guidelines
dotnetMALAGA - Sql query tuning guidelines
 
Sql server lesson6
Sql server lesson6Sql server lesson6
Sql server lesson6
 
Index Tuning
Index TuningIndex Tuning
Index Tuning
 
Database indexing techniques
Database indexing techniquesDatabase indexing techniques
Database indexing techniques
 
9. index and index organized table
9. index and index organized table9. index and index organized table
9. index and index organized table
 
SQL_Part1
SQL_Part1SQL_Part1
SQL_Part1
 
Dynamic Data Validation Lists
Dynamic Data Validation ListsDynamic Data Validation Lists
Dynamic Data Validation Lists
 
Effective Use of Excel
Effective Use of ExcelEffective Use of Excel
Effective Use of Excel
 
MySQL: Indexing for Better Performance
MySQL: Indexing for Better PerformanceMySQL: Indexing for Better Performance
MySQL: Indexing for Better Performance
 
New slides access
New slides accessNew slides access
New slides access
 
Sql server 2014 x velocity – updateable columnstore indexes
Sql server 2014 x velocity – updateable columnstore indexesSql server 2014 x velocity – updateable columnstore indexes
Sql server 2014 x velocity – updateable columnstore indexes
 
Tunning sql query
Tunning sql queryTunning sql query
Tunning sql query
 
Advance microsoft excel institute in delhi
Advance microsoft excel institute in delhiAdvance microsoft excel institute in delhi
Advance microsoft excel institute in delhi
 
Dynamic Publishing with Arbortext Data Merge
Dynamic Publishing with Arbortext Data MergeDynamic Publishing with Arbortext Data Merge
Dynamic Publishing with Arbortext Data Merge
 
Select Queries
Select QueriesSelect Queries
Select Queries
 

Destaque

Scaling the Content Repository with Elasticsearch
Scaling the Content Repository with ElasticsearchScaling the Content Repository with Elasticsearch
Scaling the Content Repository with ElasticsearchNuxeo
 
Elasticsearch and Symfony Integration - Debarko De
Elasticsearch and Symfony Integration - Debarko DeElasticsearch and Symfony Integration - Debarko De
Elasticsearch and Symfony Integration - Debarko DeDebarko De
 
Before you optimize: Understanding Execution Plans
Before you optimize: Understanding Execution PlansBefore you optimize: Understanding Execution Plans
Before you optimize: Understanding Execution PlansTimothy Corey
 
Discovering ElasticSearch
Discovering ElasticSearchDiscovering ElasticSearch
Discovering ElasticSearchBen Corlett
 
Strategies for SQL Server Index Analysis
Strategies for SQL Server Index AnalysisStrategies for SQL Server Index Analysis
Strategies for SQL Server Index AnalysisJason Strate
 
Presentation interpreting execution plans for sql statements
Presentation    interpreting execution plans for sql statementsPresentation    interpreting execution plans for sql statements
Presentation interpreting execution plans for sql statementsxKinAnx
 
Consultas en MS SQL Server 2012
Consultas en MS SQL Server 2012Consultas en MS SQL Server 2012
Consultas en MS SQL Server 2012CarlosFloresRoman
 
MS SQL SERVER: Creating Views
MS SQL SERVER: Creating ViewsMS SQL SERVER: Creating Views
MS SQL SERVER: Creating Viewssqlserver content
 
Using grouping sets in sql server 2008 tech republic
Using grouping sets in sql server 2008   tech republicUsing grouping sets in sql server 2008   tech republic
Using grouping sets in sql server 2008 tech republicKaing Menglieng
 
Sql tuning guideline
Sql tuning guidelineSql tuning guideline
Sql tuning guidelineSidney Chen
 
e computer notes - Subqueries
e computer notes - Subqueriese computer notes - Subqueries
e computer notes - Subqueriesecomputernotes
 
Sub-queries,Groupby and having in SQL
Sub-queries,Groupby and having in SQLSub-queries,Groupby and having in SQL
Sub-queries,Groupby and having in SQLVikash Sharma
 
Overview of query evaluation
Overview of query evaluationOverview of query evaluation
Overview of query evaluationavniS
 

Destaque (20)

Scaling the Content Repository with Elasticsearch
Scaling the Content Repository with ElasticsearchScaling the Content Repository with Elasticsearch
Scaling the Content Repository with Elasticsearch
 
Elasticsearch and Symfony Integration - Debarko De
Elasticsearch and Symfony Integration - Debarko DeElasticsearch and Symfony Integration - Debarko De
Elasticsearch and Symfony Integration - Debarko De
 
Index in sql server
Index in sql serverIndex in sql server
Index in sql server
 
Before you optimize: Understanding Execution Plans
Before you optimize: Understanding Execution PlansBefore you optimize: Understanding Execution Plans
Before you optimize: Understanding Execution Plans
 
Discovering ElasticSearch
Discovering ElasticSearchDiscovering ElasticSearch
Discovering ElasticSearch
 
Strategies for SQL Server Index Analysis
Strategies for SQL Server Index AnalysisStrategies for SQL Server Index Analysis
Strategies for SQL Server Index Analysis
 
Presentation interpreting execution plans for sql statements
Presentation    interpreting execution plans for sql statementsPresentation    interpreting execution plans for sql statements
Presentation interpreting execution plans for sql statements
 
Consultas en MS SQL Server 2012
Consultas en MS SQL Server 2012Consultas en MS SQL Server 2012
Consultas en MS SQL Server 2012
 
MS SQL SERVER: Creating Views
MS SQL SERVER: Creating ViewsMS SQL SERVER: Creating Views
MS SQL SERVER: Creating Views
 
Sql db optimization
Sql db optimizationSql db optimization
Sql db optimization
 
Joins SQL Server
Joins SQL ServerJoins SQL Server
Joins SQL Server
 
Using grouping sets in sql server 2008 tech republic
Using grouping sets in sql server 2008   tech republicUsing grouping sets in sql server 2008   tech republic
Using grouping sets in sql server 2008 tech republic
 
Sql tuning guideline
Sql tuning guidelineSql tuning guideline
Sql tuning guideline
 
Sql xp 04
Sql xp 04Sql xp 04
Sql xp 04
 
Statistics
StatisticsStatistics
Statistics
 
e computer notes - Subqueries
e computer notes - Subqueriese computer notes - Subqueries
e computer notes - Subqueries
 
Sub-queries,Groupby and having in SQL
Sub-queries,Groupby and having in SQLSub-queries,Groupby and having in SQL
Sub-queries,Groupby and having in SQL
 
Locking in SQL Server
Locking in SQL ServerLocking in SQL Server
Locking in SQL Server
 
Overview of query evaluation
Overview of query evaluationOverview of query evaluation
Overview of query evaluation
 
Review of SQL
Review of SQLReview of SQL
Review of SQL
 

Semelhante a "Using Indexes in SQL Server 2008" by Alexander Korotkiy, part 1

ms-sql-server-150223140402-conversion-gate02.pptx
ms-sql-server-150223140402-conversion-gate02.pptxms-sql-server-150223140402-conversion-gate02.pptx
ms-sql-server-150223140402-conversion-gate02.pptxYashaswiniSrinivasan1
 
SQL.pptx for the begineers and good know
SQL.pptx for the begineers and good knowSQL.pptx for the begineers and good know
SQL.pptx for the begineers and good knowPavithSingh
 
Filtered Indexes In Sql 2008
Filtered Indexes In Sql 2008Filtered Indexes In Sql 2008
Filtered Indexes In Sql 2008wharrislv
 
Myth busters - performance tuning 101 2007
Myth busters - performance tuning 101 2007Myth busters - performance tuning 101 2007
Myth busters - performance tuning 101 2007paulguerin
 
Intro to tsql unit 7
Intro to tsql   unit 7Intro to tsql   unit 7
Intro to tsql unit 7Syed Asrarali
 
BIS06 Physical Database Models
BIS06 Physical Database ModelsBIS06 Physical Database Models
BIS06 Physical Database ModelsPrithwis Mukerjee
 
BIS06 Physical Database Models
BIS06 Physical Database ModelsBIS06 Physical Database Models
BIS06 Physical Database ModelsPrithwis Mukerjee
 
Sydney Oracle Meetup - indexes
Sydney Oracle Meetup - indexesSydney Oracle Meetup - indexes
Sydney Oracle Meetup - indexespaulguerin
 
02 database oprimization - improving sql performance - ent-db
02  database oprimization - improving sql performance - ent-db02  database oprimization - improving sql performance - ent-db
02 database oprimization - improving sql performance - ent-dbuncleRhyme
 
Database Architecture and Basic Concepts
Database Architecture and Basic ConceptsDatabase Architecture and Basic Concepts
Database Architecture and Basic ConceptsTony Wong
 
Ms sql server ii
Ms sql server  iiMs sql server  ii
Ms sql server iiIblesoft
 
Relational Database Management System
Relational Database Management SystemRelational Database Management System
Relational Database Management Systemsweetysweety8
 

Semelhante a "Using Indexes in SQL Server 2008" by Alexander Korotkiy, part 1 (20)

Module08
Module08Module08
Module08
 
MS SQL Server
MS SQL ServerMS SQL Server
MS SQL Server
 
ms-sql-server-150223140402-conversion-gate02.pptx
ms-sql-server-150223140402-conversion-gate02.pptxms-sql-server-150223140402-conversion-gate02.pptx
ms-sql-server-150223140402-conversion-gate02.pptx
 
Ms sql-server
Ms sql-serverMs sql-server
Ms sql-server
 
Module 3
Module 3Module 3
Module 3
 
Physical Design and Development
Physical Design and DevelopmentPhysical Design and Development
Physical Design and Development
 
SQL.pptx for the begineers and good know
SQL.pptx for the begineers and good knowSQL.pptx for the begineers and good know
SQL.pptx for the begineers and good know
 
Filtered Indexes In Sql 2008
Filtered Indexes In Sql 2008Filtered Indexes In Sql 2008
Filtered Indexes In Sql 2008
 
Myth busters - performance tuning 101 2007
Myth busters - performance tuning 101 2007Myth busters - performance tuning 101 2007
Myth busters - performance tuning 101 2007
 
MySQL Indexes
MySQL IndexesMySQL Indexes
MySQL Indexes
 
Indexing
IndexingIndexing
Indexing
 
Intro to tsql unit 7
Intro to tsql   unit 7Intro to tsql   unit 7
Intro to tsql unit 7
 
BIS06 Physical Database Models
BIS06 Physical Database ModelsBIS06 Physical Database Models
BIS06 Physical Database Models
 
BIS06 Physical Database Models
BIS06 Physical Database ModelsBIS06 Physical Database Models
BIS06 Physical Database Models
 
Sydney Oracle Meetup - indexes
Sydney Oracle Meetup - indexesSydney Oracle Meetup - indexes
Sydney Oracle Meetup - indexes
 
02 database oprimization - improving sql performance - ent-db
02  database oprimization - improving sql performance - ent-db02  database oprimization - improving sql performance - ent-db
02 database oprimization - improving sql performance - ent-db
 
Database Architecture and Basic Concepts
Database Architecture and Basic ConceptsDatabase Architecture and Basic Concepts
Database Architecture and Basic Concepts
 
Ms sql server ii
Ms sql server  iiMs sql server  ii
Ms sql server ii
 
Relational Database Management System
Relational Database Management SystemRelational Database Management System
Relational Database Management System
 
V25 sql index
V25 sql indexV25 sql index
V25 sql index
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

"Using Indexes in SQL Server 2008" by Alexander Korotkiy, part 1

  • 1. Using indexes Index architecture clustered nonclustered CREATE INDEX (T-SQL) Useful tips Index options Spatial indexes 1
  • 6. CREATE INDEX (T-SQL) CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name ON <object> ( column [ ASC | DESC ] [ ,...n ] ) [ INCLUDE ( column_name [ ,...n ] ) ] [ WHERE <filter_predicate> ] [ WITH ( <relational_index_option> [ ,...n ] ) ] [ ON { partition_scheme_name ( column_name ) | filegroup_name | default } ] [ FILESTREAM_ON { filestream_filegroup_name | partition_scheme_name | "NULL" } ] ! [;] 6
  • 7. CREATE INDEX (T-SQL) <relational_index_option> ::= { PAD_INDEX = { ON | OFF } | FILLFACTOR = fillfactor | SORT_IN_TEMPDB = { ON | OFF } | IGNORE_DUP_KEY = { ON | OFF } | STATISTICS_NORECOMPUTE = { ON | OFF } | DROP_EXISTING = { ON | OFF } | ONLINE = { ON | OFF } | ALLOW_ROW_LOCKS = { ON | OFF } | ALLOW_PAGE_LOCKS = { ON | OFF } | MAXDOP = max_degree_of_parallelism | DATA_COMPRESSION = { NONE | ROW | PAGE} [ ON PARTITIONS ( { <partition_number_expression> | <range> } [ , ...n ] ) ] } 7
  • 8. Useful tips Consider using a clustered index for queries that do the following: ! • • • • Return a range of values by using operators such as BETWEEN, >, >=, <, and <=. Return large result sets. Use JOIN clauses; typically these are foreign key columns. Use ORDER BY, or GROUP BY clauses. • • • • Are unique or contain many distinct values Are accessed sequentially Defined as IDENTITY because the column is guaranteed to be unique within the table. Used frequently to sort the data retrieved from a table. • • Columns that undergo frequent changes Wide keys ! Consider columns that have one or more of the following attributes: ! ! Clustered indexes are not a good choice for the following attributes: ! 8
  • 9. Useful tips Consider the characteristics of the database when designing nonclustered indexes. ! • Databases or tables with low update requirements, but large volumes of data can benefit from many nonclustered indexes to improve query performance. Consider creating filtered indexes for well-defined subsets of data to improve query performance, reduce index storage costs, and reduce index maintenance costs compared with full-table nonclustered indexes. • Online Transaction Processing applications and databases that contain heavily updated tables should avoid over-indexing. Additionally, indexes should be narrow, that is, with as few columns as possible. ! Consider using a nonclustered index for queries that have the following attributes: ! • Use JOIN or GROUP BY clauses. • Queries that do not return large result sets. • Contain columns frequently involved in search conditions of a query, such as WHERE clause, that return exact matches. ! Consider columns that have one or more of these attributes: ! • Cover the query. • Lots of distinct values, such as a combination of last name and first name, if a clustered index is used for other columns. 9
  • 10. Useful tips Query in which the column predicate is one of these Exact match to a specific value Query description and example Index to consider Searches for an exact match in which the query uses the WHERE Nonclustered or clause to specify a column entry with a specific value. For example: clustered index on the Id column. ! Id, [Login], Email FROM Users WHERE Id = 202 SELECT Searches for an exact match to a value in a specified list of values. Exact match to a value in an For example: IN (x,y,z) list ! Id, [Login], Email FROM Users WHERE Id IN (603, 658, 1371) SELECT Nonclustered or clustered index on the Id column. Searches for a range of values in which the query specifies any entry that has a value between two values. For example: Range of values ! Id, UserId, CreateDate, Content FROM Posts WHERE CreateDate SELECT >= '2013-03-01 12:00' AND CreateDate <= '2013-03-01 12:30‘ ! Or ! Id, UserId, CreateDate, Content FROM Posts WHERE CreateDate SELECT Clustered or nonclustered index on the CreateDate column. BETWEEN '2013-03-01 12:00' AND '2013-03-01 12:30' Join between tables Searches for rows in a table that match a row in another table based Nonclustered or on a join predicate. For example: clustered index on the Id and UserId columns. SELECT u.Id, u.[Login], p.Content ! FROM Users u JOIN Posts p ON u.Id = p.UserId WHERE u.Id = 202 10
  • 11. Useful tips Query in which the column predicate is one of these LIKE comparison Sorted or aggregated PRIMARY KEY or UNIQUE constraint Query description and example Searches for matching rows that start with a specific character string such as 'abc%'. For example: ! Id, [Login], Email FROM Users WHERE [Login] LIKE 'ma%' SELECT Nonclustered or clustered index on the Login column. Nonclustered or Requires an implicit or explicit sort order or an aggregation (GROUP clustered index on the BY). For example: sorted or aggregated column. SELECT p.Id, p.UserId, u.[Login], p.Content For sort columns, FROM Posts p JOIN Users u ON p.UserId = u.Id consider specifying the ORDER BY p.UserId, p.CreateDate ASC or DESC order of Searches for duplicates of new index key values in insert and update Clustered or operations, to enforce PRIMARY KEY and UNIQUE constraints. For nonclustered index on example: the column or columns ! ! Users ([Login], [Password], Email) INSERT VALUES ('xdfyht', 'dh4G57hn1', 'xdfyht@gmail.com') UPDATE or DELETE operation Searches for rows in an update or delete operation in which the in a PRIMARY KEY/FOREIGN column participates in a PRIMARY KEY/FOREIGN KEY relationship, KEY relationship with or without the CASCADE option. Contains one or more columns in the select list that are not used for searching and lookups. For example: Column is in the select list but not in the predicate. Index to consider ! UserId, CreateDate, Content FROM Posts SELECT WHERE UserId = 202 ORDER BY CreateDate DESC defined in the constraint. Nonclustered or clustered index on the foreign key column. Nonclustered index with Content specified in the INCLUDE clause. 11
  • 12. Index options (fill factor) 12
  • 13. Index options (included columns) 13
  • 14. Index options (filtered) Views vs. Filtered Indexes Allowed in expressions Views Filtered indexes Computed columns Yes No Joins Yes No Multiple tables Yes No Simple comparison logic in a predicate Yes Yes Complex logic in a predicate Yes No 14
  • 19. Spatial indexes (conditions) • • • • • • • • geometry1.STContains(geometry2) = 1 geometry1.STDistance(geometry2) < @r geometry1.STDistance(geometry2) <= @r geometry1.STEquals(geometry2) = 1 geometry1.STIntersects(geometry2) = 1 geometry1.STOverlaps(geometry2) = 1 geometry1.STTouches(geometry2) = 1 geometry1.STWithin(geometry2) = 1 • • • • geography1.STEquals(geography2) = 1 geography1.STDistance(geography2) < @r geography1.STDistance(geography2) <= @r geography1.STIntersects(geography2) = 1 19