Domanda

Ok, apprezzo che la domanda sia un po 'vaga, ma dopo una giornata di Google, non sto arrivando da nessuna parte, qualsiasi aiuto sarà apprezzato e sono disposto a provare qualsiasi cosa.

Il problema è che abbiamo un DB PostgreSQL, che ha 10-15 milioni di righe in una tabella particolare.

Stiamo facendo una selezione per tutte le colonne, in base a un campo DateTime nella tabella. Nessun join, solo uno standard seleziona con una clausola dove (tempo> = x e tempo <= y). C'è anche un indice sul campo ...

Quando eseguo SQL usando PSQL sulla macchina locale, funziona in circa 15-20 secondi e riporta .5 milioni di righe, una delle quali è un campo di testo con una grande quantità di dati per riga (una traccia dello stack di programma) . Quando utilizziamo lo stesso SQL e lo eseguiamo tramite NPGSQL o PGADMIN III su Windows, ci vogliono circa 2 minuti.

Questo mi sta portando a pensare che sia un problema di rete. Ho controllato sulla macchina quando la query è in esecuzione e non utilizza un'enorme quantità di memoria o CPU e la velocità di rete è trascurabile.

Ho esaminato i consigli sul sito Postgres anche per le impostazioni di memoria. Incluso l'aggiornamento di Shmmax e Shmall.

È Ubuntu 10.04, PSQL 8.4, 4 GB di RAM, Quad Xeon da 2,8 GHz (risorse virtuali ma dedicate). La macchina ha la sua controparte di Windows (2008 R2, SS2008) anche lì, ma spento. La query ritorna in circa 10-15 secondi usando SS con lo stesso schema e dati, so che questo non sarebbe un confronto diretto, ma voleva dimostrare che non era un problema di prestazioni del disco.

Quindi la domanda è ... qualche suggerimento? Ci sono impostazioni di rete che dovrei cambiare? Qualcosa che mi è mancato? Non posso fornire troppe informazioni sul database, ma ecco un'analisi di spiegazione che è offuscata ...

Index Scan using "IDX_column1" on "table1"  (cost=0.00..45416.20 rows=475130 width=148) (actual time=0.025..170.812 rows=482266 loops=1)
Index Cond: (("column1" >= '2011-03-14 00:00:00'::timestamp without time zone) AND ("column1" <= '2011-03-14 23:59:59'::timestamp without time zone))
Total runtime: 196.898 ms

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top