Thread abfrage beschleunigen (1 answers)
Opened by supersucker at 2005-06-06 18:44

supersucker
 2005-06-06 18:44
#33329 #33329
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
hi zusammen,

ich hab eine ca. 20 GB grosse postgresql-datenbank, die nur eine einzige tabelle mit 15 spalten enthält.

ich stelle nun über ein script immer folgende sql-abfrage:

Code: (dl )
1
2
3
4
5
6
7
'SELECT * FROM fragment     WHERE fragmentLength = ?
and secondaryStructure = ?
and (x between (? - 0.1) and (? + 0.1))
and (y between (? - 0.1) and (? + 0.1))
and (betaangledeg between (? - 1) and (? + 1))
and (gammaangledeg between (? - 1) and (? + 1)) &nb
sp;

fragmentlength ist ein int, secondarystructure ein string, der meistens gleich ist (z.B. LLLLL, oder LLLEEELLL), x,y,betaangledeg und gammaangledeg sind floats.

das problem ist nun das diese abfrage ewigkeiten dauert...
ich hab einen index auf fragmentlength gelegt sowie auf x und auf y, desweiteren hab ich die daten auf dem fragmentlength index geclustert, dennoch dauert die abfrage so lange, das das script eigentlich nicht benutzbar ist....

habt ihr noch eine idee wie man die abfrage beschleunigen kann?
wäre es sinnvoll auf alle attribute die ich oben abfrage einen index zu legen? secondarystructure beispielsweise ist meistens ein sehr ähnlich aussehender string, der string LLLLL beispielsweise wird mehrere millionen mal in der db vorkommen, deshalb dachte ich das es unsinn wäre da einen index draufzulegen da dann jeder schlüssel in der index tabelle auf mehrere millionen einträge verweist......oder hab ich da bei indizes was falsch verstanden?
gibt es noch andere möglichkeiten ausser indizes und clustering um abfragen zu beschleunigen?

danke im voraus...

View full thread abfrage beschleunigen