|
| [SQL Server] Hvor skal man benytte stored ~ Fra : Hans Nielsen |
Dato : 24-07-02 15:52 |
|
Hej
Er ved at lave et lille website, og kom til at tænke over, hvornår man
burde hardcode sine SQL statements i ASP'en og hvornår man burde
lave dem som stored procedures.
Min fornuft fortæller mig at man altid burde bruge stored procedures,
men ud over at de ligger centralt og dermed er lettere at fejlrette, kan
jeg ikke lige komme på noget....
Er der andre gode/bedre grunde?
--
T
| |
Kim Bach Petersen (25-07-2002)
| Kommentar Fra : Kim Bach Petersen |
Dato : 25-07-02 07:31 |
|
> Er ved at lave et lille website, og kom til at tænke over, hvornår man
> burde hardcode sine SQL statements i ASP'en og hvornår man burde
> lave dem som stored procedures.
>
> Min fornuft fortæller mig at man altid burde bruge stored procedures,
> men ud over at de ligger centralt og dermed er lettere at fejlrette, kan
> jeg ikke lige komme på noget....
>
> Er der andre gode/bedre grunde?
Forbedret performance er vel den helt afgørende grund til at bruge stored
procedures, idet databasen optimerer søgningen bedre.
Kim
| |
Frederik Jensen (25-07-2002)
| Kommentar Fra : Frederik Jensen |
Dato : 25-07-02 07:39 |
|
"Hans Nielsen" <hn33211___spam@hotmail.com> wrote in message
news:3d3f8379$0$11802$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Er ved at lave et lille website, og kom til at tænke over, hvornår man
> burde hardcode sine SQL statements i ASP'en og hvornår man burde
> lave dem som stored procedures.
>
> Min fornuft fortæller mig at man altid burde bruge stored procedures,
> men ud over at de ligger centralt og dermed er lettere at fejlrette, kan
> jeg ikke lige komme på noget....
>
> Er der andre gode/bedre grunde?
-Anvendelse af stored procedures (SP) giver forbedret performance (som Kim
også skriver). Grunden hertil er at der for koden i SP genereres en optimal
execution plan under første kørsel, således efterfølgende kørsler vil være
væsentlig hurtigere. Så afhængigt at kompleksiteten kan du forvente en
makant bedre performance.
-Central beliggenhed, med et godt brugerinterface giver SP også (som du selv
skriver).
-Mere simpel ASP kode, fordi funktionaliteten er gemt væk i SP
-Portabilitet: du kan umiddelbart anvende de samme SP i fx Access eller fx
VB unden at skulle til at klippe-klistre/tilrette.
--
Frederik Jensen, Judex
| |
Ulrik Lunddahl (25-07-2002)
| Kommentar Fra : Ulrik Lunddahl |
Dato : 25-07-02 12:50 |
|
"Hans Nielsen" <hn33211___spam@hotmail.com> wrote:
> Er ved at lave et lille website, og kom til at tænke over, hvornår man
> burde hardcode sine SQL statements i ASP'en og hvornår man burde
> lave dem som stored procedures.
>
> Min fornuft fortæller mig at man altid burde bruge stored procedures,
> men ud over at de ligger centralt og dermed er lettere at fejlrette, kan
> jeg ikke lige komme på noget....
>
> Er der andre gode/bedre grunde?
Du skal IKKE bruge stores procedures hvis:
- Du skal regne urimeligt meget på de data du trækker fra databasen.
- Det er den mindste mulighed for at skulle flytte til en anden database.
Små web sites vokser i enkelte tilfælde til store web sites med mange hits,
det er ikke så svært/dyrt at skalere web servere som det er at skalere
database serveren.
SQL server dyr hvis den skal være stor, derfor kan det være en fordel at
holde døren åben for andre produkter.
Jeg kan se at du har fået mange andre gode grunde til at bruge SP, så nu kan
du sikkert bedre beslutte dig.
--
Med Venlig Hilsen
Ulrik Lunddahl - nospam037@lunddahl.dk
My heroes: Heddy Lamar & George Antheil
| |
Peter Lykkegaard (25-07-2002)
| Kommentar Fra : Peter Lykkegaard |
Dato : 25-07-02 14:02 |
|
"Ulrik Lunddahl" <nospam037@lunddahl.dk> wrote in message
news:ahoolp$q7d$1@sunsite.dk...
> "Hans Nielsen" <hn33211___spam@hotmail.com> wrote:
>
> > Min fornuft fortæller mig at man altid burde bruge stored procedures,
> > men ud over at de ligger centralt og dermed er lettere at fejlrette, kan
> > jeg ikke lige komme på noget....
> >
> > Er der andre gode/bedre grunde?
>
> Du skal IKKE bruge stores procedures hvis:
>
> - Det er den mindste mulighed for at skulle flytte til en anden database.
>
Hmm, det ville jo netop være en god grund til at lave SP's
Når man indlejrer T-SQL i sine ASP scripts, så er man jo lidt på herrens
mark, hvis man skal portere koden til et nyt RDBMS, da megen T-SQL ikke er
complaint med fx P-SQL og vice versa
Ved at bruge SP's kan man bibeholde sit præsentationslag as is, og ændre
alle SP's til det ny system
Just my two cents
- Peter Lykkegaard
| |
Ulrik Lunddahl (25-07-2002)
| Kommentar Fra : Ulrik Lunddahl |
Dato : 25-07-02 22:17 |
|
"Peter Lykkegaard" <polonline@hot.mail.com> wrote
> Hmm, det ville jo netop være en god grund til at lave SP's
> Når man indlejrer T-SQL i sine ASP scripts, så er man jo lidt på herrens
> mark, hvis man skal portere koden til et nyt RDBMS, da megen T-SQL ikke er
> complaint med fx P-SQL og vice versa
>
> Ved at bruge SP's kan man bibeholde sit præsentationslag as is, og ændre
> alle SP's til det ny system
Hvis man holder logikken i ASP eller hvilket script sprog man nu benytter og
kun benytter databasen til data, er det ganske trivielt at skifte database,
placerer man logik i databasen bliver det i næsten alle tilfælde sævrt at
konvertere.
Så min pointe var at holde logikken væk fra databasen, ikke om den skulle
placeres i SQL kald til databasen, eller i SP.
--
Med Venlig Hilsen
Ulrik Lunddahl - nospam037@lunddahl.dk
My heroes: Heddy Lamar & George Antheil
| |
Frederik Jensen (26-07-2002)
| Kommentar Fra : Frederik Jensen |
Dato : 26-07-02 13:18 |
|
"Ulrik Lunddahl" <nospam037@lunddahl.dk> wrote in message
[klip]
> Hvis man holder logikken i ASP eller hvilket script sprog man nu benytter
og
> kun benytter databasen til data, er det ganske trivielt at skifte
database,
> placerer man logik i databasen bliver det i næsten alle tilfælde sævrt at
> konvertere.
Måske et spørgsmål om fremsynethed og religion. Jeg foretrækker at lægge så
meget så mulig logik i databasen, således det er nemmere at udskifte
præsentationslaget.
Hvis man anvender SQL Server, synes jeg det vil være ærgeligt hvis man kun
anvender den til datastore. Serveren indeholder mange potente faciliteter,
herunder stored procedures, der kan implementere kompleks logik. Anvendes
serven kun til datastore er det overkill. Her kan Access fx bruges i stedet
(el. andre).
I øvrigt understøtter DB2 også stored procedures, hvilke relativt ubesværet
kan portes fra SQL Serveren.
--
Frederik Jensen, Judex
| |
Ulrik Lunddahl (26-07-2002)
| Kommentar Fra : Ulrik Lunddahl |
Dato : 26-07-02 20:24 |
|
"Frederik Jensen" <fj@judex.dk> wrote:
> Måske et spørgsmål om fremsynethed og religion. Jeg foretrækker at lægge
så
> meget så mulig logik i databasen, således det er nemmere at udskifte
> præsentationslaget.
Det er i høj grad et spørgsmål om fremsynethed, og desværre også religion.
Den optimale løsning må være at putte logikken i et logisk lag, og udnytte
de stærkeste værktøjer til dette.
et kan være en tung process at komme i gang med, så der skal overvejes nøje
før man går i gang, jeg tror de fleste kan skrive med om hvordan en portning
var tungere end forventet, og at et næsten altid er sværere end et kode nyt.
Psykologisk er det ofte også tungere for alle de involverede parter, da
resultatet som oftes ikke kan ses og føles på på samme måde som når der
skabes nyt.
> Hvis man anvender SQL Server, synes jeg det vil være ærgeligt hvis man kun
> anvender den til datastore. Serveren indeholder mange potente faciliteter,
> herunder stored procedures, der kan implementere kompleks logik. Anvendes
> serven kun til datastore er det overkill. Her kan Access fx bruges i
stedet
> (el. andre).
Det er jeg ikke enig i, SQL server m.f. understøtter ikke transaktioner, og
dem kan man som regel ikke leve uden ret længe.
Ud over det kan jeg se mange ting som kan laves i f.eks. c++ kode der ikke
kan laves i TSQL.
> I øvrigt understøtter DB2 også stored procedures, hvilke relativt
ubesværet
> kan portes fra SQL Serveren.
Det samme gør Oracle, men jeg syntes ikke det er trivielt at konvertere et
site der er i luften alligevel.
--
Med Venlig Hilsen
Ulrik Lunddahl - nospam037@lunddahl.dk
My heroes: Heddy Lamar & George Antheil
| |
Peter Lykkegaard (26-07-2002)
| Kommentar Fra : Peter Lykkegaard |
Dato : 26-07-02 22:15 |
|
"Ulrik Lunddahl" <nospam037@lunddahl.dk> wrote in message
news:ahs7jt$b5q$1@sunsite.dk...
> "Frederik Jensen" <fj@judex.dk> wrote:
>
> > Hvis man anvender SQL Server, synes jeg det vil være ærgeligt hvis man
kun
> > anvender den til datastore. Serveren indeholder mange potente
faciliteter,
> > herunder stored procedures, der kan implementere kompleks logik.
Anvendes
> > serven kun til datastore er det overkill. Her kan Access fx bruges i
> > stede (el. andre).
>
> Det er jeg ikke enig i, SQL server m.f. understøtter ikke transaktioner,
og
> dem kan man som regel ikke leve uden ret længe.
Du mener vel at Access ikke understøtter transaktioner
Svjv så understøtter MSSQL fint transaktioner
> Ud over det kan jeg se mange ting som kan laves i f.eks. c++ kode der ikke
> kan laves i TSQL.
>
Jeg var ikke klar at c++ understøttede set operationer, det er jo netop der
et RDBMS har sin klare force
Ved at undlade at bruge et givent RDBMS stærke sider og holde sig strictly
til fx SQL 89, så kræver det imho også flere muskler for at give en god
performance
De applikationer (middleware) jeg laver i dagligdagen får aldrig brug for
den performance der ligger i de meget store RDBMS installationer, og jeg har
megen glæde af T-SQL og den funktionalitet denne implementering af SQL kan
tilbyde mig
Men det er klart at hvis man forventer at skulle tilbyde sine produkter til
en meget bred kundekreds med særlige behov og skal understøtte mange
forskellige RDBMS så er det værd at overveje at bruge RDBMS som rent
datastorage
mvh/Peter Lykkegaard
| |
Ulrik Lunddahl (27-07-2002)
| Kommentar Fra : Ulrik Lunddahl |
Dato : 27-07-02 11:19 |
|
"Peter Lykkegaard" <polonline@hotmail.com> wrote:
> Du mener vel at Access ikke understøtter transaktioner
> Svjv så understøtter MSSQL fint transaktioner
Ja, jeg skrev bare noget vrøvl. Jeg mente at Access ikke var egnet til andet
en mindre projekter, da den ikke tilbyder særlig god preformance og heller
ikke understøtter transaktioner.
--
Med Venlig Hilsen
Ulrik Lunddahl - nospam037@lunddahl.dk
My heroes: Heddy Lamar & George Antheil
| |
Jakob Andersen (25-07-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 25-07-02 20:36 |
|
"Hans Nielsen" <hn33211___spam@hotmail.com> wrote in message
news:3d3f8379$0$11802$edfadb0f@dspool01.news.tele.dk...
> Er der andre gode/bedre grunde?
Der er blevet nævnt en del gode ting, men en gevinst som også er værd at
tage med er:
At du ved at bruge stored procedure lukker mange muligheder for SQL
Injection da input parametrene har angivet datatyper i modsætning til dine
VBScript variabler i ASP som brugeren kan fylde hvad som helst i.
--
Jakob Andersen
| |
|
|