/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Søgescript...
Fra : Rene' Godskesen


Dato : 15-01-02 21:12

Hvordan laver jeg et godt søgescript??

Det skal foreløbig gennemgå 10.000 indlæg i et forum, og iflg. min udbyder
er det MEGET krævende, hvis ikke det laves korrekt..

Hvordan griber jeg sagen an?

Skal søge på 'besked' og 'emne' , altså ialt 20.000 felter

Rene'
www.toyotaextreme.dk




 
 
Nhi (15-01-2002)
Kommentar
Fra : Nhi


Dato : 15-01-02 22:54

?
har du mulighed for store store procedures???
Det giver en mere hurtig søgning.

"Rene' Godskesen" <godskesen@has.dk> skrev i en meddelelse
news:3c448d15$0$250$ba624c82@nntp02.dk.telia.net...
> Hvordan laver jeg et godt søgescript??
>
> Det skal foreløbig gennemgå 10.000 indlæg i et forum, og iflg. min udbyder
> er det MEGET krævende, hvis ikke det laves korrekt..
>
> Hvordan griber jeg sagen an?
>
> Skal søge på 'besked' og 'emne' , altså ialt 20.000 felter
>
> Rene'
> www.toyotaextreme.dk
>
>
>



Rene' Godskesen (16-01-2002)
Kommentar
Fra : Rene' Godskesen


Dato : 16-01-02 17:30


"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?

Rene'



Jesper Stocholm (16-01-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 16-01-02 18:44

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

Nhi (19-01-2002)
Kommentar
Fra : Nhi


Dato : 19-01-02 23:50

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

> 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



Jesper Stocholm (20-01-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 20-01-02 00:59

Nhi wrote in news:3c49f809$0$231$ba624c82@nntp03.dk.telia.net:

> Helt klar enig,

Hvad i det jeg skrev er du enig i ... mit indlæg var på omkring 50 linier
.... men du var måske enig i det hele ?

Evt så kig på http://www.usenet.dk/netikette/citatteknik.html. Der er
ingen grund til at poste alt det jeg skrev for at svare på det :)


--
Jesper Stocholm - http://stocholm.dk

Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt

Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste