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

Puca mi server kad izvrsim sledeci upit. Pomoc!

[es] :: MySQL :: Puca mi server kad izvrsim sledeci upit. Pomoc!

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dona
Igor Doncevic
DonaCKomerc / ANOXsoft / NN Onogost / TV
Nk / Programer
Niksic

Član broj: 6949
Poruke: 20
*.crnagora.net

ICQ: 16526005
Sajt: dona.users.cg.yu


Profil

icon Puca mi server kad izvrsim sledeci upit. Pomoc!24.04.2004. u 22:15 - pre 242 meseci
Imam sledece dvije tabele u bazi
Code:

create table promjena (
   idPromjene int(11) not null auto_increment,
   idRobe int(11) not null default '0',
   idKupca int(11) ,
   Datum date,
   Naziv varchar(50),
   idDilera int(11),
   delovodni_broj int(11) not null default '0',
   PromjenaUlaz double(16,2),
   PromjenaIzlaz double(16,2),
   CijenaDobavljaca double(16,3),
   ZavisniTroskovi double(16,2),
   CijenaProdaje double(16,3),
   Porez double(16,2),
   Rabat double(16,2),
   Ambalaza int(11),
   primary key (idPromjene))
   type=MyISAM;

create table roba (
   idRobe int(11) not null auto_increment,
   Sifra_robe bigint(11),
   Naziv varchar(50),
   Autor varchar(50),
   Jed_Mjere varchar(50),
   Poreska_Sifra double(16,2) default '0.00',
   Tip_Ambalaze int(11) not null default '0',
   primary key (idRobe))
   type=MyISAM;


u tabeli roba postoji 700 stavki a u tabeli promjena 1500 stavki

posto mi je trabalo da bih ubrzao upit koriscenje podupita instalirao sam
MySQL 4.1 koji to podrzava, e sad:

posto sam kreirao indexe na idRobe u obje tabele u robi kao UNIQUE a u promjenama NORMAL i izvrsim sledeci upit
Code:

SELECT idrobe,naziv,sifra_robe,Autor,Jed_Mjere,Poreska_Sifra,Tip_Ambalaze,
(SELECT CijenaProdaje FROM promjena WHERE roba.idRobe=promjena.idRobe and cijenaprodaje<>0 ORDER BY datum desc,idpromjene desc limit 1) as cijenaprodaje,
(SELECT CijenaDobavljaca FROM promjena WHERE roba.idRobe=promjena.IdRobe and cijenadobavljaca<>0 ORDER BY datum desc,idpromjene desc LIMIT 1) as cijenadobavljaca,
(SELECT COALESCE(sum(promjenaulaz),0)-COALESCE(sum(promjenaizlaz),0) as Zalihe1 FROM promjena WHERE roba.idRobe=promjena.idRobe) as zalihe
From roba
order by sifra_robe

Puca server tako da se vise ne moze podici bez da se rucno obrisu fajlovi tj. baze sa diska.

Ima li resenje za ovo ili .....???

Edit StRiPy: Dodao sam samo code tag radi bolje preglednosti.
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.infonova.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Puca mi server kad izvrsim sledeci upit. Pomoc!25.08.2005. u 16:30 - pre 226 meseci
Citat:
dona:
Code:

SELECT idrobe,naziv,sifra_robe,Autor,Jed_Mjere,Poreska_Sifra,Tip_Ambalaze,
(SELECT CijenaProdaje FROM promjena WHERE roba.idRobe=promjena.idRobe and cijenaprodaje<>0 ORDER BY datum desc,idpromjene desc limit 1) as cijenaprodaje,
(SELECT CijenaDobavljaca FROM promjena WHERE roba.idRobe=promjena.IdRobe and cijenadobavljaca<>0 ORDER BY datum desc,idpromjene desc LIMIT 1) as cijenadobavljaca,
(SELECT COALESCE(sum(promjenaulaz),0)-COALESCE(sum(promjenaizlaz),0) as Zalihe1 FROM promjena WHERE roba.idRobe=promjena.idRobe) as zalihe
From roba
order by sifra_robe

Puca server tako da se vise ne moze podici bez da se rucno obrisu fajlovi tj. baze sa diska.

Ima li resenje za ovo ili .....???


Cini mi se da pogresno koristis subselect upite...
Mozda bi trebao da pokusas sa ovim:
Code:

SELECT r.idrobe,r.naziv,r.sifra_robe,r.Autor,r.Jed_Mjere,r.Poreska_Sifra,r.Tip_Ambalaze, 
cp.cijenaprodaje AS CijenaProdaje,
FROM roba r,
(SELECT p.cijenaprodaje AS cijenaprodaje FROM promjena p WHERE r.idRobe=p.idRobe and cijenaprodaje<>0 ORDER BY p.datum desc, p.idpromjene desc limit 1) as cp
...
i tako dalje
Cak nisam ni siguran da li mozes koristiti LIMIT u subselectu, jer koliko se sjecam, to nije radilo ranije...
Mozda ce neko drugi vise znati ...?
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

[es] :: MySQL :: Puca mi server kad izvrsim sledeci upit. Pomoc!

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

Postavi temu Odgovori

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