Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190
iCentar » Racunari i oprema » Programirannje i baze podataka » MySQL » Query radi sporo
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):
  1. SELECT tblArtikli.Artikal_Barkod,tblArtikli.Artikal_Ime,(IFNULL(tblLager.Kolicina_Lager,0)-IFNULL(wProdazba.Kolicina,0)) AS Lager,
  2. Artikal_Prodazna_Cena as Cena , (IFNULL(tblLager.Kolicina_Lager,0)-IFNULL(wProdazba.Kolicina,0))*Artikal_Prodazna_Cena AS Vkupno
  3. FROM tblArtikli
  4. LEFT JOIN tblLager
  5. ON tblArtikli.ID_Artikal=tblLager.Artikal
  6. LEFT JOIN wProdazba
  7. ON tblArtikli.ID_Artikal=wProdazba.Stavka
  8. 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):
  1. CREATE TABLE uposlenici
  2. (
  3. ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
  4. ime CHAR(30) NOT NULL,
  5. prezime CHAR(30) NOT NULL,
  6. telefon CHAR(20) NOT NULL,
  7. JMBG CHAR(13) NOT NULL,
  8. PRIMARY KEY (ID),
  9. UNIQUE IDXjmbg(JMBG),
  10. INDEX IDXimeiprezime(ime, prezime),
  11. INDEX IDXtel(telefon)
  12. )