Stored o Vista?

venerdì 22 agosto 2008 - 09.30

chim Profilo | Newbie

Buongiorno a tutti,
un consiglio, secondo voi per effettuare una select su un database (sql 2005) da un qualsiasi programma è 'meglio' utilizzare una stored procedure o una Vista?
O una stored che effettua la select su una vista?

Ciao a tutti

alx_81 Profilo | Guru

>Buongiorno a tutti,
Ciao!

>un consiglio, secondo voi per effettuare una select su un database
>(sql 2005) da un qualsiasi programma è 'meglio' utilizzare una
>stored procedure o una Vista?
>O una stored che effettua la select su una vista?
Stored procedure e viste sono oggetti completamente differenti. Una vista è una tabella virtuale, è un SQL che viene lanciato quando la vista viene chiamata. Una Stored Procedure è una subroutine, un moduletto che ti permette di inserire logiche di programmazione utilizzando T-SQL e che, fra le altre cose, può anche effettuarti delle select.
Diciamo che spesso sono oggetti che vengono utilizzati per dare modularità e per permettere una migliore gestione della security. Infine, le Stored Procedure si salvano i piani di esecuzione.
Per quanto mi riguarda, creo viste per quell'insieme di dati che so che riutilizzerò spesso, ma poi rendo pubblica ed accessibile a chi usa l'applicazione solo Stored Procedure, in modo che solo chi ha sviluppato la procedura stessa decida cosa deve succedere sulle tabelle, totalmente private ed inaccessibili all'applicativo.
Quindi ti dico, a mio avviso, se quella select deve essere utilizzata in più punti, una vista falla comunque, ma poi io la richiamerei da una stored procedure. Mi dà più modularità e mi consente una miglior gestione della sicurezza.

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

chim Profilo | Newbie

Ciao ALX_81,

grazie per la tua celere risposta, in effetti ho fatto cosi' come da te spiegato:

> Per quanto mi riguarda, creo viste per quell'insieme di dati che so che riutilizzerò spesso, ma poi rendo pubblica ed accessibile a chi usa l'applicazione
> solo Stored Procedure, in modo che solo chi ha sviluppato la procedura stessa decida cosa deve succedere sulle tabelle, totalmente private ed
> inaccessibili all'applicativo.
> Quindi ti dico, a mio avviso, se quella select deve essere utilizzata in più punti, una vista falla comunque, ma poi io la richiamerei da una stored
> procedure. Mi dà più modularità e mi consente una miglior gestione della sicurezza.

ossia richiamando da codice stored procedure anche per semplici query, stored che eseguono select su viste.
Il mio dubbio nasce dal fatto che sql deve compiere 2 passaggi (esecuzione vista, esecuzione stored), mi chiedevo se potesse esserci un modo 'migliore' a livello di prestazioni, a livello di sicurezza penso che quello citato sia indubbiamente il migliore

Ciao e grazie ancora

Buona giornata

alx_81 Profilo | Guru

>ossia richiamando da codice stored procedure anche per semplici
>query, stored che eseguono select su viste.
>Il mio dubbio nasce dal fatto che sql deve compiere 2 passaggi
>(esecuzione vista, esecuzione stored), mi chiedevo se potesse
>esserci un modo 'migliore' a livello di prestazioni, a livello
>di sicurezza penso che quello citato sia indubbiamente il migliore
ma la vista non la deve "eseguire".. la richiama come se fosse una tabella..
vai tranquillo

>Ciao e grazie ancora
di nulla!

>Buona giornata
a te!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5