Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Vista indicizzata
lunedì 31 agosto 2009 - 16.45
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Cyberking
Profilo
| Junior Member
79
messaggi | Data Invio:
lun 31 ago 2009 - 16:45
Ciao a tutti,
stavo leggendo su internet come funzionavano le viste di sql server e in particolare quelle indicizzate, da quello che ho pcaito una vista non è nient'altro che una select memorizzata che si avvia ogni volta che la richiamiamo, mentre se non ho capito male una vista indicizzate è come se io creassi una tabella quando faccio il create
e ogni volta che riapro la vista lui non va a ricercare i dati dal db ma li prende direttamente dalla vista, quindi se io creo in partenza una select join magari da tabelle con molti campi per estrarne pochi, poi quando richiamo la vista indicizzata questa fa molto prima perchè ha già i dati memorizzati.
Se è tutto giusto quello che ho capito, vi volevo chiedere
1) come si crea una vista indicizzata
2) avendo bisogno di aggiornare i dati di questa vista una volta sola al giorno, cosa devo fare?
ciao e grazie in anticipo
http://www.trovashop.it
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 31 ago 2009 - 21:37
>1) come si crea una vista indicizzata
Definisci una normale vista con l'opzione SCHEMABINDING e definisci su di essa un indice clustered unique.
Esistono tutta una serie di prerequisiti che trovi al seguente link:
http://msdn.microsoft.com/en-us/library/ms191432.aspx
>2) avendo bisogno di aggiornare i dati di questa vista una volta
>sola al giorno, cosa devo fare?
Devi semplicemente aggiornare le tabelle base richiamate dalla vista e penserà SQL Server ad aggiornare l'indice clustered definito sulla vista indicizzata.
Qui trovi i concetti base sulle indexed views:
http://msdn.microsoft.com/en-us/library/ms187864.aspx
>ciao e grazie in anticipo
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Cyberking
Profilo
| Junior Member
79
messaggi | Data Invio:
mar 1 set 2009 - 12:59
Mi sono letto i link che mi hai mandato, mille grazie, e sono riuscito a creare una vista, ho un dubbio ancora però e cerco di essere il più preciso possibile nel spiegartelo.
Ho creato la vista dalla join, e quando la apro mi ritrovo già tutti i campi, ho l'impressione però che lui comunque riesegua la query
quello che io invece vorrei ottenere e che questi dati siano fissi,la mia join mi tira fuori circa 400 record da circa 100.000
quindi dovendo poi cercare in qui solo 400 vorrei fare la vista che mi contenga solo i 400, ma senza dover rifare la join a ogni richiesta,
quindi la mia domanda è: ho capito bene che la vista indicizzata ha fisso i 400 record e non li va a ricaricare ogni volta?
o mi conviene creare una procedura che mi crei una nuova tabella con i 400 record dentro?
ciao e grazie ancora
http://www.internetdiscount.it
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 1 set 2009 - 13:54
>Ho creato la vista dalla join, e quando la apro mi ritrovo già
>tutti i campi, ho l'impressione però che lui comunque riesegua
>la query
Verificalo osservando il piano di esecuzione.
>quindi la mia domanda è: ho capito bene che la vista indicizzata
>ha fisso i 400 record e non li va a ricaricare ogni volta?
Esatto.
>o mi conviene creare una procedura che mi crei una nuova tabella
>con i 400 record dentro?
Boh, non ho info sufficienti per suggerirti l'architettura più adeguata alle tue esigenze
>ciao e grazie ancora
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
86Marco
Profilo
| Expert
889
messaggi | Data Invio:
dom 30 dic 2012 - 23:04
CIao ragazzi e scusate se riapro un post un po anticuccio :)
Sapete spiegarmi meglio cosa si intende per vista e la differenza tra vista e vista indicizzata?
:)
Spero di poter ricevere Vs aiuti!
Grazieee
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !