Salut,
Nu am lucrat cu Postgres, da' ma descurc un pic cu SQL, asa ca hai sa vedem= daca ajungem undeva. In primul rand, left-join (AFAIK) este intr-adevar mai costisitor=20 decat un "join obisnuit". Un left-join se foloseste atunci cand vrei sa incluzi inregistrari din tabla din "stanga" chiar daca nu au=20 corespondent in tabela din "dreapta". In al doilea rand, clauzele de join poti sa le pui si in clauza=20 WHERE, de exemplu: SELECT A.camp1, A.camp2, B.campx, i1.nume, i2.nume FROM A, B, i1, i2 WHERE A.a&b=3DB.a&b AND A.a&i1=3Di1.a&i1 AND A.a&i2=3Di2.a&i2 AND <ceva clauze de filtrare> ORDER BY <ceva> Acuma nu stiu cat de bine face Postgres otimizarea la interogarea=20 asta. Insa am auzit ca e un soft destept, deci ar trebui sa se=20 descurce.=20 Ca regula generala, asigura-te ca ai definit relatiile intre tabele si ca ai definiti indecsi pe coloanele folosite in join.=20 Tot ca regula generala, cu cat pui mai multe conditii de filtrare in WHERE, cu atat mai bine, pentru ca alea se aplica primele si deci raman mai putine join-uri de facut. In principiu nu ar trebui=20 sa conteze ordinea in care scrii tu conditiile in SQL, e treaba optimizatorului sa determine care e ordinea cea mai avantajoasa in care tre' sa le aplice. Postgres are ceva de=20genul "statistici despre tabele"=3F Unele RDBMS au asa ceva (Informix era tare la asta) si, daca datele statistice=20 sunt up-to-date, atunci optimizatorul ia decizii mai bune in functie de datele efective pe care le ai stocate. Sper sa te ajute. Sebastian --- Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to unsubscribe from this list.
