|
|
|
|
| |
|
CowBoy |
@aPiso non ho la minima idea di cosa tratti il pro ... |
05-06-2012 16:03 |
|
|
CowBoy |
.arcimaestro.
Registered: May 2006
Posts: 294 (0.04 al dì)
Location: Milano
Corso: F49 - Informatica
Anno: Laureato F49
Time Online: 3 Days, 13:40:27 [...]
Status: Offline
Edit | Report | IP: Logged |
@aPiso non ho la minima idea di cosa tratti il progetto ma penso che sia giusto creare e mantenere le viste materializzate visto che in un sito realmente operativo la mancanza di cache si sente e come. Quindi anche se all'inizio costa un po crederci, queste sono utili tanto quanto la progettazione del DB stesso.
Cmq non si rischia di creare 1Kviste per 1Kannunci. Se clusterizzato questo creera viste solo per i cluster selezionati (da aggiornare con i nuovi dati). Salutissimi, e se hai bisogno di una mano chiedimi pure...
@Shady90 ripassa i comandi base dei DBMS per le viste. Per i cluster pensa ai filti che usi ad es. su Booking per selezionare un sottoinsieme di alberghi... se la vista c'è allora vanno solo recuperati i dati, altrimenti il DBMS si deve fare tutta l'esecuzione della query e poi passarti i dati.
Giusto?!
__________________
.. ±·ø·±-`` MuSiC iS My LanGuAGe ´´-±·ø·± ..
Last edited by CowBoy on 05-06-2012 at 16:06
|
05-06-2012 16:03 |
|
|
| |
|
pintu |
Scusate una cosa...nel testo del progetto si parla ... |
05-06-2012 20:17 |
|
|
pintu |
.illuminato.
Registered: Jul 2010
Posts: 248 (0.05 al dì)
Location: Novara
Corso: informatica
Anno:
Time Online: 2 Days, 0:46:30 [...]
Status: Offline
Edit | Report | IP: Logged |
Scusate una cosa...nel testo del progetto si parla di cluster, ma in pratica questi cluster saranno da implementare tramite delle viste no?? Oppure si parla di indici, clusterizzazione di tabelle ecc?? No perchè non mi sembra che al laboratorio queste cose sono state fatte...
|
05-06-2012 20:17 |
|
|
| |
|
Shady90 |
@CowBoy in che senso "ripassa i comandi base dei D ... |
05-06-2012 21:26 |
|
|
Shady90 |
.fedelissimo.
Registered: Jun 2010
Posts: 59 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 7:05:33 [...]
Status: Offline
Edit | Report | IP: Logged |
@CowBoy in che senso "ripassa i comandi base dei DBMS per le viste" ? è sbagliato quello che ho detto sulle viste materializzate?
mah comunque per me continua a non aver senso creare una vista per ogni annuncio per clusterizzare gli annunci vicini..
|
05-06-2012 21:26 |
|
|
| |
|
CowBoy |
Si parla di cluster come termine generico di raggr ... |
05-06-2012 22:27 |
|
|
CowBoy |
.arcimaestro.
Registered: May 2006
Posts: 294 (0.04 al dì)
Location: Milano
Corso: F49 - Informatica
Anno: Laureato F49
Time Online: 3 Days, 13:40:27 [...]
Status: Offline
Edit | Report | IP: Logged |
Si parla di cluster come termine generico di raggrupamento logico o gruppo di unità simili... uno dei tanti termini inglesi presenti nell'informatica che ha molteplici applicazioni (non solo nei DBMS).
Viste materializzate:
Viste (il risultato dell'esecuzione di una query) salvate sotto forma di struttra dati.
http://wiki.postgresql.org/wiki/Mat...Views_GSoC_2010
http://tech.jonathangardner.net/wik...erialized_Views
http://www.revsys.com/blog/2006/jan...-in-postgresql/
Importante manterere aggiornate tali strutture dati in modo opportuno. Le strutture servono da cache all'applicazione per evitare di eseguire ogni volta query anche molto lunghe o su una quantità di dati importante.
Bene aggiungerle con i trigger, ma magari pensare anche a una soluzione ad hoc per dare robustezza alla struttura (tipo ogni settimana/giorno/mese/ect. elimino la cache ed eseguo la query per ricreare le strutture dati)
__________________
.. ±·ø·±-`` MuSiC iS My LanGuAGe ´´-±·ø·± ..
Last edited by CowBoy on 05-06-2012 at 22:31
|
05-06-2012 22:27 |
|
|
| |
|
Shady90 |
scusate, cerchiamo di capire una cosa alla volta.. ... |
05-06-2012 22:28 |
|
|
Shady90 |
.fedelissimo.
Registered: Jun 2010
Posts: 59 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 7:05:33 [...]
Status: Offline
Edit | Report | IP: Logged |
scusate, cerchiamo di capire una cosa alla volta..
lasciando un attimo da parte il discorso dei cluster, la parte più semplice sulle viste materializzate:
"Lo studente realizzi opportune viste materializzate per i criteri di selezione che ritiene maggiormente utilizzati. E' pertanto necessario realizzare gli opportuni trigger che mantengano aggiornate tali viste in relazione all'inserimento o alla modica di annunci."
quello che occorre fare è creare dei trigger che ad ogni insert/update/delete crei/aggiorni delle tabelle (temporanee, ma tabelle vere e proprie) in cui inserisce/modifica/rimuove dei record "COPIA" di quelli che si stanno inserendo/modificando .. qualcosa del genere?
faccio un esempio:
- inserisco un annuncio nella tabella ANNUNCI, l'annuncio è della tipologia "vendita"
- il trigger interviene nella insert, crea se non esiste già una tabella tipo "ANNUNCI_VENDITA" e inserisce al suo interno un record identico (o quasi) a quello che è stato inserito (dico quasi perchè porto solo le colonne che poi realmente vengono interrogati cercando gli annunci)
un altro esempio:
- aggiorno un annuncio nella tabella ANNUNCI, cambiando la tipologia da "vendita" ad "affitto"
- il trigger rimuove il record relativo a quell'annuncio dalla tabella "ANNUNCI_VENDITA" e lo inserisce in "ANNUNCI_AFFITTO"
... può andare bene?
|
05-06-2012 22:28 |
|
|
| |
|
CowBoy |
Ottimo use case... allora ci stiamo capendo. Avant ... |
05-06-2012 22:38 |
|
|
CowBoy |
.arcimaestro.
Registered: May 2006
Posts: 294 (0.04 al dì)
Location: Milano
Corso: F49 - Informatica
Anno: Laureato F49
Time Online: 3 Days, 13:40:27 [...]
Status: Offline
Edit | Report | IP: Logged |
Ottimo use case... allora ci stiamo capendo. Avanti così!
P.S: Meglio avere già pronte le tabelle, tanto conosci a priori i criteri di selezione.
__________________
.. ±·ø·±-`` MuSiC iS My LanGuAGe ´´-±·ø·± ..
|
05-06-2012 22:38 |
|
|
| |
|
Shady90 |
.... ovvero??
... |
05-06-2012 22:48 |
|
|
Shady90 |
.fedelissimo.
Registered: Jun 2010
Posts: 59 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 7:05:33 [...]
Status: Offline
Edit | Report | IP: Logged |
.... ovvero??
utilizzare istruzioni apposite come CREATE MATERIALIZED VIEW non credo sia quello che voglia vedere, l'idea è probabilmente quella di implementare noi delle viste materializzate, non usare strumenti già gestiti dal DBMS ("è pertanto necessario realizzare gli opportuni trigger che .....")
se non fosse così nulla avrebbe senso, perchè sappiamo entrambi che i DBMS gestiscono automaticamente la cache delle viste scegliendo se rieseguire la query della vista oppure interrogare una cache dell'ultima interrogazione ..
|
05-06-2012 22:48 |
|
|
| |
|
CowBoy |
Giusto e capisco cosa vuoi dire. Cmq evito adesso ... |
05-06-2012 23:09 |
|
|
CowBoy |
.arcimaestro.
Registered: May 2006
Posts: 294 (0.04 al dì)
Location: Milano
Corso: F49 - Informatica
Anno: Laureato F49
Time Online: 3 Days, 13:40:27 [...]
Status: Offline
Edit | Report | IP: Logged |
Giusto e capisco cosa vuoi dire. Cmq evito adesso di sbandare e uscire fuori argomento.
Chiaro è che l'importanza maggiore in questa parte del progetto non è capire se e come hai fatto la struttura dati, se non capire quando e dove attivi i trigger. Insomma, il loro utilizzo.
__________________
.. ±·ø·±-`` MuSiC iS My LanGuAGe ´´-±·ø·± ..
|
05-06-2012 23:09 |
|
|
| |
|
Shady90 |
Ok, grazie del supporto CowBoy.
... |
06-06-2012 07:51 |
|
|
Shady90 |
.fedelissimo.
Registered: Jun 2010
Posts: 59 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 7:05:33 [...]
Status: Offline
Edit | Report | IP: Logged |
Ok, grazie del supporto CowBoy.
Sto implementando come ho scritto sopra per quanto riguarda le viste materializzate che velocizzano la ricerca.
Sono ancora un pò perplesso invece per la realizzazione dei cluster che dividono gli annunci per similiarità .... se non ne vengo a capo la faccio lato web con delle query mirate e non lato db!
Se qualcuno ha buone idee ci faccia sapere!!
|
06-06-2012 07:51 |
|
|
| |
|
pintu |
"L'amministratore può cambiare la visualizzazione ... |
06-06-2012 14:40 |
|
|
pintu |
.illuminato.
Registered: Jul 2010
Posts: 248 (0.05 al dì)
Location: Novara
Corso: informatica
Anno:
Time Online: 2 Days, 0:46:30 [...]
Status: Offline
Edit | Report | IP: Logged |
"L'amministratore può cambiare la visualizzazione in cluster selezionando un diverso criterio di similarità tra quelli supportati dall'applicazione."
Se io ho il criterio di similarità geografica e un ipotetico criterio di similarità sulla base del prezzo come posso scegliere tra uno dei due lato DB?? Dato che questi due criteri saranno implementati tramite funzioni non posso scegliere a priori quale utilizzare...
|
06-06-2012 14:40 |
|
|
| |
|
Shady90 |
[QUOTE][i]Originally posted by pintu [/i]
... |
07-06-2012 19:30 |
|
|
Shady90 |
.fedelissimo.
Registered: Jun 2010
Posts: 59 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 7:05:33 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by pintu
"L'amministratore può cambiare la visualizzazione in cluster selezionando un diverso criterio di similarità tra quelli supportati dall'applicazione."
Se io ho il criterio di similarità geografica e un ipotetico criterio di similarità sulla base del prezzo come posso scegliere tra uno dei due lato DB?? Dato che questi due criteri saranno implementati tramite funzioni non posso scegliere a priori quale utilizzare...
io stavo pensando a una tabella "Amministrazione", con tipo due colonne "chiave" "valore", dove una delle chiavi serve ad impostare quale criterio usare.
nelle funzioni quando ne ho bisogno interrogo la tabella, dall'applicazione invece per cambiare faccio un update sulla tabella.
non mi è venuto in mente nient'altro..
|
07-06-2012 19:30 |
|
|
| |
|
pintu |
Potrebbe essere una soluzione! Anche perchè poi s ... |
07-06-2012 20:05 |
|
|
pintu |
.illuminato.
Registered: Jul 2010
Posts: 248 (0.05 al dì)
Location: Novara
Corso: informatica
Anno:
Time Online: 2 Days, 0:46:30 [...]
Status: Offline
Edit | Report | IP: Logged |
Potrebbe essere una soluzione! Anche perchè poi si può ottenere lo stesso risultato lato Web con una semplice submit che esegue l'update!
Se mi illumino con qualche altra soluzione ti aggiorno
|
07-06-2012 20:05 |
|
|
| |
|
Shady90 |
scusa pintu, alla fine tu come hai fatto i cluster ... |
07-06-2012 22:09 |
|
|
Shady90 |
.fedelissimo.
Registered: Jun 2010
Posts: 59 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 7:05:33 [...]
Status: Offline
Edit | Report | IP: Logged |
scusa pintu, alla fine tu come hai fatto i cluster per vicinanza?
|
07-06-2012 22:09 |
|
|
| |
|
pintu |
ci sto lavorando ancora non ho fatto niente! A par ... |
07-06-2012 22:26 |
|
|
pintu |
.illuminato.
Registered: Jul 2010
Posts: 248 (0.05 al dì)
Location: Novara
Corso: informatica
Anno:
Time Online: 2 Days, 0:46:30 [...]
Status: Offline
Edit | Report | IP: Logged |
ci sto lavorando ancora non ho fatto niente! A parte l'idea che avevo postato qualche commento più su non sono andato avanti!
|
07-06-2012 22:26 |
|
|
| |
|
pintu |
Qualcuno sa se si può fare una cosa del genere?
... |
09-06-2012 14:21 |
|
|
pintu |
.illuminato.
Registered: Jul 2010
Posts: 248 (0.05 al dì)
Location: Novara
Corso: informatica
Anno:
Time Online: 2 Days, 0:46:30 [...]
Status: Offline
Edit | Report | IP: Logged |
Qualcuno sa se si può fare una cosa del genere?
CREATE OR REPLACE FUNCTION prova(varchar(20)) RETURNS VOID AS $$
BEGIN
CREATE VIEW vista($1) AS
SELECT attributo
FROM tabella
WHERE condizione
RETURN;
END;
$$ language plpgsql;
In pratica voglio una funzione che prende in input un varchar(20) e crei una tabella il cui nome sia: vista('valore in input').
E' possibile?? Ho fatto diverse prove ma non ottengo risultati, forse però sbaglio qualcosa nella sinstassi.
|
09-06-2012 14:21 |
|
|
| |
|
All times are GMT. The time now is 05:17. |
|
|
|
|
|
|
|
| |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|