Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Upotreba i implementacija indeksa u MSSQL Server 2005

[es] :: MS SQL :: Upotreba i implementacija indeksa u MSSQL Server 2005

[ Pregleda: 1515 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jmix23
Jankovic Miljan
Database - Programer
Priboj

Član broj: 175500
Poruke: 69
*.wmx.mediaworksit.net.



Profil

icon Upotreba i implementacija indeksa u MSSQL Server 200527.08.2009. u 15:09 - pre 178 meseci
Imam jednu tabelu u bazi na SQL server 2005 na osnovu koje sam napravio View koji koristim za izradu izvestaja...e sad, posto prilikom pokretanja samog izvestaja veoma dugo traje iscitavanje podataka(oko 32000 recorda) iz tog view-a hteo sam na neki nacin da ubrzam taj proces. Posle malo guglanja sam shvatio da to moze da se ostvari preko indeksiranja same tabele, tj. njenih kolona, ali ono sto nisam uspeo da shvatim je KAKO? Tabela i View vec postoje i sad bi me zanimalo kako da izvrsim indeksiranje tabele i sta u stvari predstavlja to indeksiranje (znam samo da sluzi za brzu pretragu jer su za svaki record jedinstveni), zato bih zamolio one strpljive da mi objasne sam pojam indeksiranja i kako bih sve to mogao implementirati...

Unapred hvala
jmix
 
Odgovor na temu

M E N E
borislav
Temerin

Član broj: 30434
Poruke: 231
93.87.203.*



+1 Profil

icon Re: Upotreba i implementacija indeksa u MSSQL Server 200530.08.2009. u 20:40 - pre 178 meseci
Ne mora index da bude jedinstven (UNIQUE), ali "sortira" podatke na nacin na koji tebi treba. Logicki su podaci sortirani po Primarnom Kljucu, a ubacivanje indexa pravi dodatne meta podatke koji tu pomazu da nadjes podatke po njima.
Recimo da imas tabelu T1

CREATE TABLE [dbo].[T1](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Pripadnost] [smallint] NULL,
[Tip] [smallint] NULL,
[Novac] [money] NULL,
[Datum] [money] NULL,
CONSTRAINT [PK_T1] PRIMARY KEY CLUSTERED
(
[Id] ASC
) ON [PRIMARY]

ti ces mnogo cesce traziti podatke po recimo PRIPADNOSTi, ili TIPu, a ne po IDu

select <nesto>
from T1
where Pripadnost=<parametar>
and Tip=<parametar>

Ovaj skript ti nalaze da napravis index nad te dve kolone, koji ce ubrzati tvoj WHERE iskaz.

CREATE NONCLUSTERED INDEX [IX_T1] ON [dbo].[T1]
(
[Pripadnost] ASC,
[Tip] ASC
) ON [PRIMARY]

SQL SERVER ovako pravi dodatne podatke, sortirane po kombinaciji ova dva polja, tako da se gore napisani WHERE lako i brzo snalazi u tom indeksu, a zatim poput pokazivaca, skace na pravo mestu u tabelu i uzima odgovarajuce podatke.
Indeksa mozes imati vise nad jednom tabelom.

Mislim da je ukratko, i pojednostavljeno... to = to.




Uhvatili ste me nespremnog
 
Odgovor na temu

[es] :: MS SQL :: Upotreba i implementacija indeksa u MSSQL Server 2005

[ Pregleda: 1515 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.