PDA

View Full Version : Postgres query


texerasmo
03-05-2006, 17:22
Ciao a tutti ho un query in postgres che impiega alcune volte anche due secondi per eseguirla e non ha moltissimi record.

SELECT distinct c.descrizione as descContenuto, c.DATAULTIMAMODIFICA FROM contenuti c, valori_attributo va, attributi at, struttura_attributi sa WHERE c.cartella='155' AND c.codice not in (select va.codice_contenuto from valori_attributo va, attributi at, struttura_attributi sa WHERE sa.codice=at.id_struttura AND at.codice = va.id_attributo AND sa.nome = 'vista' ) order by c.DATAULTIMAMODIFICA DESC

ora il problemi sono due.
1) il tempo della query ho indicizzato il database.
2) questa query mi manda la cpu anche al 20%

immaginate se le richieste sono tante cosa succede il 4 proc vanno al 100%
e il sito si impianta.

Ora dovrei mettere in cluster i db per smistare le chiamate?
ho modificato postgres.conf ed ho ottenuto anche dei miglioramenti ma non ho risolto il problema.
voi che ne pensate?

Grazie

Duncan
03-05-2006, 18:55
Ma sei sicuro che la query sia corretta a me non sembra

la stessa query la puoi scrivere cosė


SELECT distinct c.descrizione as descContenuto, c.DATAULTIMAMODIFICA
FROM contenuti c
WHERE c.cartella='155'
AND c.codice not in (select va.codice_contenuto
from valori_attributo va, attributi at, struttura_attributi sa
WHERE sa.codice=at.id_struttura AND at.codice = va.id_attributo AND sa.nome = 'vista' )
order by c.DATAULTIMAMODIFICA DESC

almeno in SQL standard, poi non so i postgresql