Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Community > Tech > [database] VIEW in PostgreSQL
  Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
fabpicca
jesus robot d'acciaio

User info:
Registered: May 2002
Posts: 2166 (0.26 al dì)
Location: Pieve Emanuele
Corso: Ticom
Anno:
Time Online: 12 Days, 23:12:28 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
[database] VIEW in PostgreSQL

Ieri sera a me e a Torak ci è sovvenuto un dubbio. Ma le VIEW di PostgreSQL sono dinamiche o cosa?

Nel senso, una volta creata la VIEW e memorizzata nel DB, se la tabella cui essa attinge viene modificata , la VIEW si modifica di conseguenza o bisogna creare un trigger per ricreare la VIEW ad ogni modifica?

aggiungo: la documentazione di Postgres dice (http://www.postgresql.org/docs/8.1/...createview.html)

[...]CREATE VIEW defines a view of a query. The view is not physically materialized. Instead, the query is run every time the view is referenced in a query.[...]

parrebbe quindi che la query alla base della view venga rieseguita ogniqualvolta si referenzia la query...uhm...

__________________
my website?|ubuntu linux|get Firefox|grazie Polonia |bagdad sour

"Come va che non ha le corna e le zampe di Caprone?" gli opposi. "Oh, Giuvà", mi disse il prete "adesso non si usa più.Satana è furbo". (I.Silone, Fontamara)
"Al giorno d'oggi non bisogna essere intelligenti, perchè la gente si offende" (un ubriacone)
"close your eyes / pay the price / for your paradise" (DM) "whatever you want to change/you'd better start changing it in your mind" (Transatlantic)

Last edited by fabpicca on 23-11-2005 at 09:09

23-11-2005 08:53
Click Here to See the Profile for fabpicca Click Here to See the Blog of fabpicca Click here to Send fabpicca a Private Message Visit fabpicca's homepage! Find more posts by fabpicca Add fabpicca to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
torak
Renaulto muori

User info:
Registered: Dec 2002
Posts: 440 (0.05 al dì)
Location: Bollate
Corso: Informatica laurea triennale
Anno: 3
Time Online: 6 Days, 2:35:19 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Una vista in questo modo quindi serve quindi per facilitare la scrittura delle select, rendendole più leggibbili (e forse guadagnando qualcosa in termini di caching).
Tuttavia e come se fisicamente postgres rilanciasse la query con cui hai creato la vista ogni volta che le accedi. Questo nel caso di viste non materializzate.
Esistono delle viste dette materializzate che fanno si che il la vista venga in qualche modo scritta su db, e serve per velocizzare l'esecuzione delle query che richiedono spesso quei dati (ad esempio una join costosa può essere memorizzata).
Esistono modi per creare delle viste materializzate anche in postgres (urrahh, ooriah eep!). Lì quando viene effettuato l'aggiornamento si può specificare a seconda della scelta che si effettua (eager, lazy, snapshot, sarcazzo).
Per informazioni serie ->

http://jonathangardner.net/PostgreS...s/matviews.html

23-11-2005 16:23
Click Here to See the Profile for torak Click Here to See the Blog of torak Click here to Send torak a Private Message Find more posts by torak Add torak to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
torak
Renaulto muori

User info:
Registered: Dec 2002
Posts: 440 (0.05 al dì)
Location: Bollate
Corso: Informatica laurea triennale
Anno: 3
Time Online: 6 Days, 2:35:19 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

come ho scritto bene!

W l'open source
:approved:, by deepblue

23-11-2005 16:24
Click Here to See the Profile for torak Click Here to See the Blog of torak Click here to Send torak a Private Message Find more posts by torak Add torak to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
fabpicca
jesus robot d'acciaio

User info:
Registered: May 2002
Posts: 2166 (0.26 al dì)
Location: Pieve Emanuele
Corso: Ticom
Anno:
Time Online: 12 Days, 23:12:28 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Qualcuno mi sa dire qualcosa dell'effettivo guadango in termini di performance usando le views rispetto alle query effettive?

__________________
my website?|ubuntu linux|get Firefox|grazie Polonia |bagdad sour

"Come va che non ha le corna e le zampe di Caprone?" gli opposi. "Oh, Giuvà", mi disse il prete "adesso non si usa più.Satana è furbo". (I.Silone, Fontamara)
"Al giorno d'oggi non bisogna essere intelligenti, perchè la gente si offende" (un ubriacone)
"close your eyes / pay the price / for your paradise" (DM) "whatever you want to change/you'd better start changing it in your mind" (Transatlantic)

05-12-2005 10:55
Click Here to See the Profile for fabpicca Click Here to See the Blog of fabpicca Click here to Send fabpicca a Private Message Visit fabpicca's homepage! Find more posts by fabpicca Add fabpicca to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
torak
Renaulto muori

User info:
Registered: Dec 2002
Posts: 440 (0.05 al dì)
Location: Bollate
Corso: Informatica laurea triennale
Anno: 3
Time Online: 6 Days, 2:35:19 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

scrivi meno quando fai le query, ma in termini di performance a meno che non usi le viste materializzate riesegue la query ogni volta, quindi non guadagni una cippa.

06-12-2005 08:59
Click Here to See the Profile for torak Click Here to See the Blog of torak Click here to Send torak a Private Message Find more posts by torak Add torak to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Gusher
Splinter fun club

User info:
Registered: Jan 2003
Posts: 475 (0.06 al dì)
Location: Ovunque
Corso: Informatica
Anno: Done
Time Online: 15 Days, 22:06:15 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by fabpicca
Qualcuno mi sa dire qualcosa dell'effettivo guadango in termini di performance usando le views rispetto alle query effettive?


I costi sono i medesimi, come dice torak, ti evita di riscrivere una query magari complessa. IMHO conviene quando devi accedere spesso anche solo ad un sottoinsieme di quella query. Magari hai molti campi, join trà tabelle .. e devi accedere a un solo campo, coviene fare una select sulla view.

Nel caso invece devi eseguire sempre la solita query che hai "storato" tramite una view, forse a queso punto conviene scrivere una stored procedure che tipicamente viene precompilata dal dbms e puoi beneficiarne dal momento che ti ritrovi una grossa mole di dati ed un idicizzazione corretta dei campi.

08-12-2005 08:51
Click Here to See the Profile for Gusher Click Here to See the Blog of Gusher Click here to Send Gusher a Private Message Find more posts by Gusher Add Gusher to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
torak
Renaulto muori

User info:
Registered: Dec 2002
Posts: 440 (0.05 al dì)
Location: Bollate
Corso: Informatica laurea triennale
Anno: 3
Time Online: 6 Days, 2:35:19 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Non ho mai usato le stored procedure... meglio che mi documenti!

p.s.
ieri sera ho installato postgres 8.1 e ho visto che supporta l'ottimizzazione delle query con algoritmi genetici... azzon...

12-12-2005 12:59
Click Here to See the Profile for torak Click Here to See the Blog of torak Click here to Send torak a Private Message Find more posts by torak Add torak to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
fabpicca
jesus robot d'acciaio

User info:
Registered: May 2002
Posts: 2166 (0.26 al dì)
Location: Pieve Emanuele
Corso: Ticom
Anno:
Time Online: 12 Days, 23:12:28 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Gusher
I costi sono i medesimi, come dice torak, ti evita di riscrivere una query magari complessa. IMHO conviene quando devi accedere spesso anche solo ad un sottoinsieme di quella query. Magari hai molti campi, join trà tabelle .. e devi accedere a un solo campo, coviene fare una select sulla view.

Nel caso invece devi eseguire sempre la solita query che hai "storato" tramite una view, forse a queso punto conviene scrivere una stored procedure che tipicamente viene precompilata dal dbms e puoi beneficiarne dal momento che ti ritrovi una grossa mole di dati ed un idicizzazione corretta dei campi.


in effetti quella della stored procedure è una buonissima idea.
Mo ce provo.

intanto mi sono comprato la maglietta di postgresql!

__________________
my website?|ubuntu linux|get Firefox|grazie Polonia |bagdad sour

"Come va che non ha le corna e le zampe di Caprone?" gli opposi. "Oh, Giuvà", mi disse il prete "adesso non si usa più.Satana è furbo". (I.Silone, Fontamara)
"Al giorno d'oggi non bisogna essere intelligenti, perchè la gente si offende" (un ubriacone)
"close your eyes / pay the price / for your paradise" (DM) "whatever you want to change/you'd better start changing it in your mind" (Transatlantic)

12-12-2005 13:23
Click Here to See the Profile for fabpicca Click Here to See the Blog of fabpicca Click here to Send fabpicca a Private Message Visit fabpicca's homepage! Find more posts by fabpicca Add fabpicca to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
jdhoring
Ma saggio de che?

User info:
Registered: May 2003
Posts: 2867 (0.36 al dì)
Location: Milano
Corso: Informatica triennale
Anno: Giurassico
Time Online: 27 Days, 17:36:29 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Non conosco PostgreSQL.

Nel 99 Oracle (versione 8.1.5) se ne uscì con le "materialized wiew" o "snapshot" in cui la vista è effettivamente materializzataw in una tabella.

La "vista materializzata" viene creata alla creazione della view e può essere "rinfrescata" ad ogni singolo aggiornamento delle base tables, oppure "a tempo".

La sua utilità attiene le prestazioni solo quando una o più base tables si trovano su DB remoti: così si può risparmiare sui tempi di rete; oppure anche in caso di tabelle locali, ad esempio nei casi in cui la snapshot consista di dati frequentemente acceduti (esempio: i movimenti contabili della giornata) con risparmio sui tempi di ricerca in tabelle molto grandi (nel ns. esempio i movimenti contabili degli ultimi 10 anni).

Anche le viste non materializzate hanno i loro perchè, ma raramente attengono alle prestazioni.

Faccio qualche esempio:
1) una query molto complessa, al punto che l'ottimizzatore va in panne ed utilizza un piano di esecuzione inefficiente, ed usata spesso, quindi vale la pena di aggiungere comandi di override rispetto al piano di esecuzione inefficiente...
2) una query che mostra le sole righe che l'utente può vedere e non le altre: do all'utente le grant sulla query, e non sulle tabelle...
3) una query che rende comprensibile agli utenti dei dati molto astratti (ad esempio la base dati di Oracle Designer)... ecc ecc.

__________________
Furbo è colui che è molto bravo a togliersi da quei guai in cui il saggio non si sarebbe mai cacciato

Il bravo motociclista è come un buon amante: ha equilibrio, giudizio e tempismo.

Nessuna forma d'amore ha tanto rispetto per la libertà dell'altro come l'amicizia.

12-12-2005 13:38
Click Here to See the Profile for jdhoring Click Here to See the Blog of jdhoring Click here to Send jdhoring a Private Message Find more posts by jdhoring Add jdhoring to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 09:21.    Post New Thread    Post A Reply
  Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

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
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.046 seconds (67.41% PHP - 32.59% MySQL) con 27 query.