You are on page 1of 28

V Huy Tm SQL Seminar H 2011 - SQLViet blog

H ni 30/07/2011

Ni dung
C bn v index Cc loi index So snh tnh nng tng loi index Ngh gii lao Ti u ha s dng index Cc k thut s dng index nng cao Bo tr index Kt lun

SQL Seminar H 2011 - SQLViet blog

C bn v index
Tng t nh mc index cui mi quyn sch Mc ch: to shortcut n d liu cn tm C cu trc d liu dng B-Tree Khong cch t gc n mi node l tng ng nhau

SQL Seminar H 2011 - SQLViet blog

V d: thng k doanh thu phim ti M tun 17/6


FilmID 1 2 3 4 5 6 7 Index theo trng Ten Ten Green Latern Super 8 Mr. Popers Penguins X-Men: First Class Hangover Part II Kung Fu Panda 2 Bridesmaids root Doanh thu $53.2M $73M $18.4M $120M $233M $144M $136M

A < Ten <= H

H < Ten <= N

N < Ten <= Z

Brides maids

Green Latern

Hangover Part II

Kung Fu Panda 2

Mr. Popers Penguins

Super 8

X-Men: First Class


4

SQL Seminar H 2011 - SQLViet blog

C bn v index (Contd)
Ti sao cn index Nng cao hiu nng thc hin cu lnh Gim kha trn bng Thc thi rng buc unique constraint Hai loi index trnh by hm nay: Clustered index v nonclustered index Cc loi index khng c cp: XML index,

spatial index, fulltext index

SQL Seminar H 2011 - SQLViet blog

Clustered index
Sp xp bng theo th t ca kha index Ton b bng tr thnh cy index. Cc node l cha

kha index v ng thi cha tt c cc trng cn li

SQL Seminar H 2011 - SQLViet blog

Clustered index (Contd)


V d
FilmID 1 2 Ten Green Latern Super 8 Doanh thu $53.2M $73M

3
4 5 6 7

Mr. Popers Penguins


X-Men: First Class Hangover Part II Kung Fu Panda 2 Bridesmaids

$18.4M
$120M $233M $144M $136M

SQL Seminar H 2011 - SQLViet blog

Clustered index (Contd)


Clustered Index theo trng FilmID
root

1 < FilmID <= 4

4 < FilmID <= 7

FilmID Ten DoanhThu

1 Green Latern 53.2

FilmID Ten DoanhThu

2 Super 8 73

FilmID

7 Bridesmaids 136

Ten DoanhThu

SQL Seminar H 2011 - SQLViet blog

Clustered index (Contd)


Ch c th ti a mt clustered index cho mi bng Clustered index c th cha mt hoc nhiu trng Khi to Primary Key, mt cch mc nh clustered

index c to km vi n
y l cch thng thng to clustered index

SQL Seminar H 2011 - SQLViet blog

Nonclustered index
Mi node l cha kha index v con tr tr n trang

d liu cha bn ghi tng ng


Nu bng c clustered index, con tr ny chnh l

kha clustered index Nu bng khng c clustered index, con tr ny l RowID, mt dng nh danh bn ghi kt hp ca fileID + pageID + offset

Bng c th c nhiu nonclustered index

Index c th cha mt hoc nhiu trng


c lu tr tch ri khi bng
SQL Seminar H 2011 - SQLViet blog 10

Nonclustered index (Contd)


c clustered index (FilmID)
A < Ten <= H Ten FilmID Bridesmaids 7 Ten FilmID root H < Ten <= N Green Latern 2 Ten FilmID N < Ten <= Z X-Men: First Class 4

Khng c clustered index


A < Ten <= H
Ten RowID Bridesmaids 10107823 Ten RowID

root H < Ten <= N Green Latern 10107956 Ten RowID N < Ten <= Z X-Men: First Class 102001930
11

SQL Seminar H 2011 - SQLViet blog

Clustered vs. Nonclustered


Clustered index: Trnh bookmark lookup Nng cao n nh cho nonclustered index Ch c php to mt clustered index Non-clustered index: bookmark lookup gim hiu nng Cho php to nhiu index trn bng Lu tr c lp vi bng tng kh nng x l song song
SQL Seminar H 2011 - SQLViet blog 12

Index b xo trn khi cp nht


Data
Page 1
RowID Ten Mota RowID Ten Mota 101084 Galaxy 101085 Iphone4

Index
Page 2
RowID Ten Mota 101086 Iphone4 All the breakt.. Ten RowID Iphone4 101085

Trng Mota ca bn ghi Iphone4 trng, bn ghi vn lu tr trong page 1 Node index ca Iphone4 cha con tr l RowID hin ti ca bn ghi Iphone4
SQL Seminar H 2011 - SQLViet blog 13

Index b xo trn khi cp nht


UPDATE SanPham SET Mota = All the breakthrough technology in iPhone 4 is WHERE Ten = Iphone4

SQL Seminar H 2011 - SQLViet blog

14

Index b xo trn khi cp nht


Data
Page 1
RowID Ten Mota 101084 Galaxy

Index
Page 2
RowID Ten Mota 101086 Iphone4 All the breakt.. Ten RowID Iphone4 101086 101085

Kch thc bn ghi Iphone4 tng, vt qu khng gian cn trng ca trang. Bn ghi c chuyn sang trang mi Node index cng phi cp nht con tr theo
SQL Seminar H 2011 - SQLViet blog 15

Unique v non-unique index


unique (duy nht) v non-unique (khng duy nht) l

cc thuc tnh ca index Mi index u c th unique hoc non-unique


Tuy nhin, clustered index thng l unique

Khi clustered index khng unique, mi node c gn

thm mt chui 4 byte (thc cht l mt s INT dng) tr thnh unique. Khi s bn ghi ti a cho bng ~ 2 t

Khi khai bo rng buc unique constraint, mt

unique index c to thc thi rng buc ny


SQL Seminar H 2011 - SQLViet blog 16

Unique v non-unique index


UNIQUE CLUSTERED NON-CLUSTERED NON-UNIQUE

SQL Seminar H 2011 - SQLViet blog

17

Index seek v Index scan


Index seek: khi h thng c th nhy thng n

node cn tm
y l thao tc ti u

Index scan: khi h thng cn qut c cy index

ly ra cc node cn tm
Khng ti u bng index seek, nhng tt hn table

scan

SQL Seminar H 2011 - SQLViet blog

18

Chn ct nh index
Ct l ng c vin tt cho index khi: c s dng thng xuyn trong iu kin tm kim (mnh WHERE) c s dng trong iu kin JOIN hai bng la chn (selectivity) cao u tin clustered index cho ct: Tng tun t Kch thc khng qu ln c tm kim vi tn sut cao Thng c tm kim theo di gi tr
SQL Seminar H 2011 - SQLViet blog 19

la chn
la chn = S gi tr khc bit / S bn ghi
la chn cao
Cy index trn trng s CMT

la chn thp
Cy index trn trng gii tnh

SQL Seminar H 2011 - SQLViet blog

20

index c s dng
la chn (selectivity) cao Vi nonclustered index, khi selectivity qu thp b Optimizer b qua index do chi ph ln Trnh chuyn i kiu d liu (type conversion)

Trnh p dng hm ln ct index


Ct u tin trong kha index phi c s dng

cho tm kim (vi composite index)

SQL Seminar H 2011 - SQLViet blog

21

Index vi lnh JOIN


Index gip gim khng gian tm kim chn thut

ton hiu qu hn

SQL Seminar H 2011 - SQLViet blog

22

Cc k thut index nng cao


Covering index Lu thm cc ct d liu vo node index Gip trnh truy nhp vo bng ly d liu Filtered index Index cho mt s bn ghi nht nh Index intersection Nhiu index cng tham gia lc d liu Di chuyn index sang filegroup khc vi bng c index v c bng din ra song song
SQL Seminar H 2011 - SQLViet blog 23

Bo tr index
Cc thao tc cp nht (INSERT/UPDATE/DELETE)

lm index b phn mnh Hai dng phn mnh:


Hai node k tip khng c lu tr lin k nhau

Trang (page) cha nhiu khng gian trng

Phn mnh lm tng s trang cn c cho cng

lng d liu gim hiu nng truy vn Thng tin v phn mnh: sys.dm_db_index_physical_stats
SQL Seminar H 2011 - SQLViet blog 24

Bo tr index (Contd)
Rebuild v Reorganize index: Dng cu trc li index, do gim thiu c phn mnh Re-org thao tc nhanh hn nhng khng hiu qu khi index b phn mnh nng Khi phn mnh <=30% REORGANIZE Khi phn mnh > 30% REBUILD

SQL Seminar H 2011 - SQLViet blog

25

Bo tr index
Cp nht Statistics: Statistics cha thng tin v phn b d liu ca ct gip Optimizer chn phng n thc thi thch hp Sau qu trnh cp nht d liu, statistics b outdated dn n Optimizer chn phng n sai Thng k v s dng index: sys.dm_db_index_usage_stats

SQL Seminar H 2011 - SQLViet blog

26

Kt lun
Index l cng c quan trng tr gip cc truy vn

vo database
Phn ln s c v performance lin quan n index

Mt tri ca index : Chim khng gian a Tng chi ph ca cc thao tc cp nht d liu H thng OLTP: Cn iu ha cc li ch Index c chn lc H thng Data warehouse: index t do hn
SQL Seminar H 2011 - SQLViet blog 27

www.sqlviet.com/blog

You might also like