Gjoreski |
15.03.2017 18:19 |
Predmet:Query radi sporo
imam ovakav query koj mi presmeta stajne artikala ali radi sporo.
Moram da napomenem da imam preko 45000 artikala
PreuzmiIzvorni kôd (Visual Basic):SELECT tblArtikli.Artikal_Barkod,tblArtikli.Artikal_Ime,(IFNULL(tblLager.Kolicina_Lager,0)-IFNULL(wProdazba.Kolicina,0)) AS Lager,
Artikal_Prodazna_Cena as Cena , (IFNULL(tblLager.Kolicina_Lager,0)-IFNULL(wProdazba.Kolicina,0))*Artikal_Prodazna_Cena AS Vkupno
FROM tblArtikli
LEFT JOIN tblLager
ON tblArtikli.ID_Artikal=tblLager.Artikal
LEFT JOIN wProdazba
ON tblArtikli.ID_Artikal=wProdazba.Stavka
WHERE (IFNULL(tblLager.Kolicina_Lager,0)-IFNULL(wProdazba.Kolicina,0))<>0
wProdazba = view koj iscitava prodate artikala i ovde nemamo puno stavka
tblLager = je tabela sa stajne artikala u magacinu
ideja za nesto pobrzo. |
zxz |
15.03.2017 19:53 |
Predmet:Re: Query radi sporo
ako mozes nakaci tabelu tblLager lakse ce biti. |
Gjoreski |
15.03.2017 20:28 |
Predmet:Re: Query radi sporo
sad spremam |
Gjoreski |
15.03.2017 21:00 |
Predmet:Re: Query radi sporo
Evo baza sa sva podatke |
Prilozi: Baza FULL.rar (Velicina datoteke:1.84 MB)
|
zxz |
16.03.2017 00:05 |
Predmet:Re: Query radi sporo
Nisu ti polja indeksirana po kojima vezes tabele.
tblArtikli.ID_Artikal -->indeksirati
tblLager.Artikal ---> indeksirati
wProdazba.Stavka ->>>indeksirati.
i sve ce da poleti. |
zxz |
16.03.2017 00:14 |
Predmet:Re: Query radi sporo
Inace su tabele lose skrojene.
tblLager.Artikal dozvoljava null a nebi smjelo da bude null. |
Gjoreski |
16.03.2017 01:58 |
Predmet:Re: Query radi sporo
Hvala @ZXZ problem je resen.
Problem je bio u to sto polje Artikal nije bilo indexovano.
Ja nisam tako upacen u ovo i zmolio bix ako ima vremena ZXZ da malo napise nesto oko ovix indexa i ako ima jos neki drugi ovakvistvari oko stvarajne relacionih baza .
Evo u prilog i fotografije kako je bilo i kao je sad.
Razlika u brzine rada je ogromna. |
Prilozi: Index Error.bmp (Velicina datoteke:1.18 MB)
Index OK.bmp (Velicina datoteke:1.21 MB)
|
zxz |
16.03.2017 12:47 |
Predmet:Re: Query radi sporo
Sta da kazem ovo je jedna citava oblast i tesko je to opisati u jednom postu ali evo neke smjernice a na netu imate toga more jedno.
Mozda poslije otvoriti novu temu u forumu arhiva koji strsi prazan.
-Indeksi se koriste za brzo pronalaženje nekog zapisa u određenoj koloni.
-Jako ubrzavaju izvođenje SELECT naredbe, sortiranje, grupiranje...
-Mogu se sastojati od jedne ili više kolona.
-Može se postaviti UNIQUE INDEX koji ne dozvoljava da dva retka u istoj koloni imaju istu
vrijednost. |
zxz |
16.03.2017 12:49 |
Predmet:Re: Query radi sporo
Indeksi funkcioniraju na slijedeći način:
-Kad se postavi indeks na nekoj koloni u tablici, MySQL sortira sve zapise iz te kolone i zapiÅ¡e ih u datoteku u kojoj pohranjuje indekse zajedno s pokazivačem na taj redak u tablici u datoteci s podacima.
-Bez indeksa, da bi MySQL pronaÅ¡ao neki zapis u nekoj koloni mora proći kroz sve zapise.
- S indeksom, MySQL koristeći algoritme za pretragu brzo pronalazi tražene zapise i pomoću pokazivača
dolazi do podataka zapisanih u tom retku tablice. |
zxz |
16.03.2017 12:51 |
Predmet:Re: Query radi sporo
Kada kreiramo tablicu mozemo postvaiti indekse za odredjena polja odnosno polja indeksirati.
Primjer:
Kod kreiranja tablice
PreuzmiIzvorni kôd (Text):CREATE TABLE uposlenici
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
ime CHAR(30) NOT NULL,
prezime CHAR(30) NOT NULL,
telefon CHAR(20) NOT NULL,
JMBG CHAR(13) NOT NULL,
PRIMARY KEY (ID),
UNIQUE IDXjmbg(JMBG),
INDEX IDXimeiprezime(ime, prezime),
INDEX IDXtel(telefon)
)
|