Helt klar enig, men ofte bruges der masser af join og scipt før man execute
de forskellig sql-kald.
Men +'et er også at når man kalder lige denne sql kald, kender server til
lige præsic denne procedure, så det går hurtigere.
"Jesper Stocholm" <spam200201@stocholm.dk> skrev i en meddelelse
news:a24e4p$nvm$1@sunsite.dk...
> Rene' Godskesen wrote in dk.edb.internet.webdesign.serverside.asp:
> > "Nhi" <nhiasy@stofanet.dk> skrev i en meddelelse
> > news:3c44a505$0$250$ba624c82@nntp03.dk.telia.net...
> > > ?
> > > har du mulighed for store store procedures???
> > > Det giver en mere hurtig søgning.
> >
> > Hvad kræves der for at lave en STORED PROCEDURE, og hvad gør den
nøjagtig?
> >
>
> En stored procedure er et "lille SQL program", der ligger færdigkompileret
på
> serveren. I denne procedure har du mulighed for at lave løkker,
konditioner
> etc. Fordelen ved en stored procedure er, at du kan fjerne potentielt
meget
> indviklede SQL-kommandoer etc fra dine ASP-sider, kompilere dem og lægge
dem
> op på serveren. Dernæst kan du "næsten" kalde dem som en normal funktion i
> VB(s),dvs som
>
> intUserID =request.form("uid")
> strSearch = request.form("search")
> strSPSQL = "EXEC storedProc1 @userID=" & intUserID & ",@search= '" &
strSearch
> & "'"
> 'her kaldes proceduren via ADO connection objectet. Den kan dog også
> 'kaldes via command-objectet.
> oCon.execute(strSPSQL)
>
> SPs har yderligere en fordel, da koden er kompileret i forvejen. Hvis du
> skriver en normal asp-side, så skal scriptet først parses og dernæst
> kompileres før det sendes til serveren ... dette skridt er nu allerede
taget,
> og derfor vil man ofte opleve en performance-forbedring ved anvendelse af
SPs.
>
> Jeg kan dog ikke forestille mig, at _selve søgningen_ i dine tabeller går
> hurtigere fordi du anvender SPs [1]. For at optimere selve søgningen er
det
> imo mere et spørgsmål om at kigge på, om den eksisterende datamodel kan
tunes
> og forbedres.
>
> Husk også at lave indexes på de søjler, som du vil søge på værdier for [2]
og
> evt joiner tabeller med. Hvis skal lave SQL-sætninger som "SELECT
> Field1,Field2 FROM Table1 WHERE Field1 = 'jesper'" bliver søgetiden sat
> drastisk ned ved anvendelse af indexes.
>
> [1] Jeg synes lidt, at Nhis indlæg lugter lidt af, at han mener, at
søgningen
> vil gå hurtigere ved anvendelse af SPs. Min pointe er, at hvis man skal
lave
> en søgning fx: "SELECT Field1 FROM Table1 WHERE Field1 LIKE %jesper%" i en
> tabel med en millionmilliard rækker, så tror jeg ikke, at man vil opleve
en
> mærkbar forbedring i performance. Hvis man derimod skal søge i 10.000
rækker,
> men har 100+ liniers kode til en masse manipuleringer af data inden man
når
> frem til "SELECT * FROM Table1 WHERE unikID = 1", så kan det godt hjælpe
at
> lave en SP, så de 100+ liniers kode bliver pre-kompileret på serveren.
>
> [2] Jeg tror ikke, at det vil hjælpe med et index på en søjle, hvor man
leder
> efter _dele_ af indholdet, men kun hvor man matcher efter _hele_
indholdet -
> men det ved nogen andre end jeg nok helt præcist. Hvis din database er MS
SQL
> Svr, så er det ikke muligt at indsætte et index på en TEXT-søjle (MEMO i
> Access). Prøv i stedet at kigge på "Full text search".
>
> :)
>
> /Jesper
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! =>
http://www.html.dk/tutorials