Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

SQLHiA Indekser. SQLHiA Indekser B-TrærIndeks bygget opp som tre-struktur. Benyttes typisk på foreign key. Hash-tabellerNøkkel-tranformering. Benyttes.

Liknende presentasjoner


Presentasjon om: "SQLHiA Indekser. SQLHiA Indekser B-TrærIndeks bygget opp som tre-struktur. Benyttes typisk på foreign key. Hash-tabellerNøkkel-tranformering. Benyttes."— Utskrift av presentasjonen:

1 SQLHiA Indekser

2 SQLHiA Indekser B-TrærIndeks bygget opp som tre-struktur. Benyttes typisk på foreign key. Hash-tabellerNøkkel-tranformering. Benyttes typisk på primary key (ID). Clustered Index: Bestemmer fysisk rekkefølge på data i database-tabeller. Kun en clustered index pr tabell. Må alltid lages før non-clustered index. Må alltid lages før data plasseres i tabellen.

3 SQLHiA Clustered Index / Non-Clustered Index Index Data ClusteredNon-Clustered

4 SQLHiA B-Trær Et B-Tre av orden m er definert ved følgende: - Roten er enten et løv eller har mellom 2 og m barn. - Alle ikke-løv (evnt. bortsett fra roten) har mellom [m/2] og m barn. - Alle løv befinner seg på samme nivå

5 SQLHiA B-trærEks:Innsetting i et B-tre av orden 4(1) 8,11,1216,1741,5222,23,3158,59,61 16:-41:58 22:-

6 SQLHiA B-trærEks:Innsetting i et B-tre av orden 4(2) 8,11,1216,17,1841,5222,23,3158,59,61 16:-41:58 22:-

7 SQLHiA B-trærEks:Innsetting i et B-tre av orden 4(3) 1,811,1241,5222,23,3158,59,61 11:1641:58 22:- 16,17,18

8 SQLHiA B-trærEks:Innsetting i et B-tre av orden 4(4) 1,811,1241,5222,23,3158,59,61 11:1641:58 22:- 16,1718,19

9 SQLHiA B-trærEks:Innsetting i et B-tre av orden 4(5) 1,811,1241,5222,23,3158,59,61 11:-41:58 16:22 16,1718,19 18:-

10 SQLHiA B-trærEks:Innsetting i et B-tre av orden 4(6) 1,811,1241,5222,2358,59,61 11:-41:58 16:22 16,1718,19 18:- 28,31

11 SQLHiA B-trærEks:Innsetting i et B-tre av orden 4(7) 1,811,1241,5222,2358,59,61 11:-58:- 16:22 16,1718,19 18:- 28,31 28:-

12 SQLHiA B-trærEks:Innsetting i et B-tre av orden 4(8) 1,811,1241,5222,2358,59,61 11:-58:- 22:- 16,1718,19 18:- 28,31 28:- 16:-41:-

13 SQLHiA Hashing / Nøkkel-transformering / Randomisering Hashing KeyTransformed Key

14 SQLHiA Nøkkel-transformering PNr ID PNr = IDEn-entydig sammenheng mellom PNr (Postnummer) og ID

15 SQLHiA Nøkkel-transformering KundeNrTverrSum Distrikt

16 SQLHiA Nøkkel-transformering KundeNrSiste siffer i tverrsummen av siste siffer i produktene KundeNr Vekttall Produkt

17 SQLHiA Nøkkel-transformering PNrID PNr = IDEn-entydig sammenheng mellom PNr (Postnummer) og ID Ubenyttet 1 … 10000

18 SQLHiA Hash-tabeller ID Trans

19 SQLHiA Nøkkel-tranformering-Folding Nøkkel- transformering ID = PostNr [ ]

20 SQLHiA Nøkkel-transformering-Divisjon-rest-metoden Nøkkel- transformering ID = PostNr [ ] :

21 SQLHiA Nøkkel-tranformering-Uheldig tranformering HSize = KeySize = 8 HValue Max = 8 * 127= Tranformering av hvert tegn i Key til tilhørende ordinal-verdi:

22 SQLHiA Ulike nøkkel-transformeringer int Hash1(char* Key, int HSize) { return ((int)Key[0] + (int)Key[1] + (int)Key[2]) % HSize; } Transformed Key Data Key int Hash2(char* Key, int HSize) { return ((int)Key[0] + 27 * (int)Key[1] * (int)Key[2]) % HSize; }

23 SQLHiA Ulike nøkkel-transformeringer int Hash3(char* Key, int KeySize, int HSize) { int HashVal; HashVal = (int)Key[0]; for(int i = 1; i < KeySize; i++) HashVal = HashVal*32 + (int)Key[i]; HashVal = HashVal % Hsize; return HashVal; } Transformed Key Data Key

24 SQLHiA Hashing a key to a database page-SQLBase 1.Transformer symbolsk key ved å la hvert tegn bli representert ved tilhørende ASCII-verdi. Deretter transformeres denne ASCII-verdien som vist nedenfor til et såkalt binært fullword (4 bytes). 1A.Del ASCII-key inn i 4-byte enheter. 1B.XOR alle 4-byte enhetene sammen til et 4-byte resultat (ingen key-del blir borte). 1C.Utfør bitwise complement (fjerner event. bias) 2.Transformer resultatet fra 1 (binary fullword) til et heltall i side-intervallet ved å ta divisjonsresten med minste primtall som er større enn eller lik antall sider. 3.Transformer output fra 2 til en fysisk side adresse ved å legge til start side-nummer for for første rad i tabellen.

25 SQLHiA Hashing a key to a database page-SQLBase - Eks E J S M --> ASCII 1A.Key1 = Key2 = B.Key1 = XORKey2 = =xKey = = ASCII 1C.~xKey = = ASCII bfKey= (fullword key) 2.Page Adresses (1753 hash buckets) MOD 1753= Første side-adresse for tabellen er 60 => Side-adresse = = 1170


Laste ned ppt "SQLHiA Indekser. SQLHiA Indekser B-TrærIndeks bygget opp som tre-struktur. Benyttes typisk på foreign key. Hash-tabellerNøkkel-tranformering. Benyttes."

Liknende presentasjoner


Annonser fra Google